728x90
문제
다솜이는 은진이의 옆집에 새로 이사왔다. 다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다.
다솜이의 옆집에서는 플라스틱 숫자를 한 세트로 판다. 한 세트에는 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 |
댓글