백준 1475 방 번호 JAVA

sundays·2023년 3월 27일
0

문제

방 번호

풀이

한 문자씩 비교해서 이미 사용했던 숫자이면 answer 에 +1을 해주었는데, 이렇게 하면 주어진 테케는 전부 맞을 수 있지만 예외처리가 안되는 부분이 있다. 예를들면 696900의 경우 같은 숫자들이 2번나왔는데 3으로 출력되는 에러가 발생한다. 그 이유는 인덱스대로 검사해보면 00이 두번나와서 2번씩 이미 갱신된 상태인데 69가 또 2번 출력되면서 3번 갱신된다고 리턴된다

보통은 배열로 선언해주고 한쪽 6, 9가 나올때 한쪽으로 전부 치우치게 더해주어서 나중에 /2 를 하는 방법으로 구해주면 된다.

int[] data = new int[10];

while (n > 0) {
	int k = n % 10;
    // 9이든 6에 한번에 갱신을 해주기 위해서 조건문 추가
    if (n == 9) {
    	k = 6;
    }
    data[k]++;
   	n /= 10;
}

data[6] = (data[6] + 1) / 2;

inta answer = 0;
for (int x: data) {
	answer = Math.max(answer, x);
}

전체 코드

전체 코드

profile
develop life

0개의 댓글