백준 BaekJoon 1475번: 방 번호 [Java] 자바

2020-08-30


문제

다솜이는 은진이의 옆집에 새로 이사왔다.

다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다.

다솜이의 옆집에서는 플라스틱 숫자를 한 세트로 판다.

한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다.

다솜이의 방 번호가 주어졌을 때,

필요한 세트의 개수의 최솟값을 출력하시오.

 

(6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다.)

입력

첫째 줄에 다솜이의 방 번호 N이 주어진다.

N은 1,000,000보다 작거나 같은 자연수 또는 0이다.

출력

첫째 줄에 필요한 세트의 개수를 출력한다.


소스코드

		Scanner scan = new Scanner(System.in);
		String n = scan.next();
			 
	        int Nsize = n.length();
	        int[] needSet = new int[10];
	        int temp = 0;
	        int max = 0;
	 
	        //counting 배열을 사용하였다.
	        for (int i = 0; i < Nsize; i++) {
	            temp = n.charAt(i) - '0';
	            needSet[temp]++;
	        //입력된 숫자가 있는 곳에 ++연산 수행    
	 
	        }

	        //6,9를 바꿔서 사용할 수 있다.
	        int k = (needSet[6] + needSet[9]);
	        //6,9의 합이 짝수이면 반으로 나누면 된다.
	        if (k % 2 == 0) {
	            needSet[6] = k / 2;
	            needSet[9] = k / 2;
	        }
	        
	        else {
	            needSet[6] = k / 2 + 1;
	            needSet[9] = k / 2 + 1;
	        }
	        //6,9의 합이 홀수이면 반으로 나눠도 1번 더 사용할 수 있기 때문에 1을 더해준다.
	        //ex) 9676 
	        for (int i : needSet) {
	            max = Math.max(max, i);
	        }
	        System.out.println(max);
	        //가장 많은 번호가 있는 배열의 위치를 찾는다.
	        //세트당 번호는 하나이기 때문이다.

 

출처 링크 : www.acmicpc.net/problem/1475

 

1475번: 방 번호

첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수 또는 0이다.

www.acmicpc.net