방 번호 (1475번)
https://www.acmicpc.net/problem/1475
풀이방법
- 0~9 배열을 1로 초기화
- 입력값을 하나씩 가져와 숫자로 변환 후 숫자에 해당하는 배열에 1뺌
- 6, 9인 경우 6 또는 9의 개수를 1뺌
- 배열의 숫자가 0인 경우 한세트가 더 필요하므로 0~9까지 각각 1씩 더한 후 해당 숫자를 1뺌
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
String roomNumber = st.nextToken();
int setCount = 1;
int[] numberCount = new int[10];
for(int i=0; i<=9; i++) {
numberCount[i] = 1;
}
int number = 0;
for(int i=0; i<roomNumber.length(); i++) {
number = roomNumber.charAt(i) - '0';
if (numberCount[number] == 0) {
if (number == 6 && numberCount[9] != 0) number = 9;
else if (number == 9 && numberCount[6] != 0) number = 6;
else {
for (int j = 0; j <= 9; j++) numberCount[j] += 1;
setCount++;
}
}
numberCount[number] -= 1;
}
System.out.println(setCount);
}
}
Comments powered by Disqus.