본문 바로가기
Algorithm/Baekjoon

Baekjoon 1475 방 번호 JAVA

by Hunveloper 2022. 4. 25.
728x90
 

1475번: 방 번호

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

www.acmicpc.net

문제

다솜이는 은진이의 옆집에 새로 이사왔다. 다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다.

다솜이의 옆집에서는 플라스틱 숫자를 한 세트로 판다. 한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다. 다솜이의 방 번호가 주어졌을 때, 필요한 세트의 개수의 최솟값을 출력하시오. (6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다.)

입력

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

출력

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

풀이

6과 9만 따로 처리하면 된다.

1, 2, 3, 4, 5, 7, 8, 0 은 서로 갯수를 바꿀 수 없지만

6과 9의 경우 두개를 바꿔 사용할 수 있기에, 플라스틱 숫자 한 세트에 6이 2개 혹은 9를 2개라고 생각 할 수 있다.

총 필요한 6, 9의 갯수를 파악한 후 만약에 20개가 필요하다고 하면 5세트가 있으면 1*10, 2*10,,, (6과 9)*20 개로 만족할 수 있다.

코드
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Main {
	public static void main(String[] args) throws Exception{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String str=br.readLine();
		int [] a= new int[10];
		for(int i=0;i<str.length();i++) {
			if(str.charAt(i)=='6' || str.charAt(i)=='9')	// a가 6이랑 9이면 서로 보완 가능하므로 6인경우로 카운팅함
				a[6]++;
			else
				a[str.charAt(i)-'0']++;	// 나머지는 그 번호를 카운팅한다
		}
		a[6]=a[6]/2+a[6]%2;	// 6일때는 9일때와 동일하게 담겨있으므로 숫자 한 세트를 사면 6과 9는 상호 보완가능하기에 3개가 필요한 경우 2키트를 사면 6969 4개가 있기에 1개가 남게 구매 가능하다
		int ans=0;
		for(int i=0;i<10;i++)
			ans=Math.max(ans, a[i]);
		System.out.println(ans);
	}
}

 

728x90
728x90

'Algorithm > Baekjoon' 카테고리의 다른 글

Baekjoon 1806 부분합 JAVA  (0) 2022.04.27
Baekjoon 1292 쉽게 푸는 문제 JAVA  (0) 2022.04.25
Baekjoon 2480 주사위 세개 JAVA  (0) 2022.04.25
Baekjoon 2525 오븐 시계 JAVA  (0) 2022.04.25
Baekjoon 13460 구슬 탈출 2 JAVA  (0) 2022.04.25

댓글