https://www.acmicpc.net/problem/1475
문제
다솜이는 은진이의 옆집에 새로 이사왔다. 다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다.
다솜이의 옆집에서는 플라스틱 숫자를 한 세트로 판다. 한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다. 다솜이의 방 번호가 주어졌을 때, 필요한 세트의 개수의 최솟값을 출력하시오. (6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다.)
입력
첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다.
출력
첫째 줄에 필요한 세트의 개수를 출력한다.
예제 입력 1 복사
9999
예제 출력 1 복사
2
예제 입력 2 복사
122
예제 출력 2 복사
2
문제의 핵심은 6과 9를 뒤집어서 사용할 수 있다는 것이다.
배열을 사용하여 0부터 9까지의 갯수를 관리한다.
이때 6과 9는 or연산자를 이용하여 같이 처리해주는데
6이 작을때는 6을 증가, 9가 작을때는 9가 증가를 시켜 관리하고
가장 큰 count를 출력하였다.
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Arrays;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String n = br.readLine();
int answer[] = new int[10];
for (int i = 0; i < n.length(); i++) {
int num = Character.getNumericValue(n.charAt(i));
if (num == 6 || num == 9) {
if (answer[6] > answer[9])
answer[9]++;
else
answer[6]++;
} else {
answer[num]++;
}
}
int count = 1;
for (int i = 0; i < answer.length; i++) {
if (count < answer[i])
count = answer[i];
}
bw.write(count + "");
bw.flush();
bw.close();
}
}
반응형
'알고리즘 > 백준' 카테고리의 다른 글
백준 10808번 알파벳 갯수 - 자바 (Java) (0) | 2024.06.05 |
---|---|
백준 3273번 두 수의 합 -자바(Java) (0) | 2024.06.05 |
1158번 요세푸스 문제 -자바(Java) (0) | 2024.06.05 |
백준 5397번 키로거- 자바(Java) (0) | 2024.06.05 |
백준 1406번 에디터 - Java 자바 (0) | 2024.06.05 |