https://www.acmicpc.net/problem/1475
(21.08.10)
1475번: 방 번호 - C언어 풀이
[소스 코드]
#include <stdio.h>
// [baekjoon] 1475번 - 방 번호
int main() {
int s[10] = { 0 };
int n;
scanf("%d", &n);
if (n == 0) {
printf("1");
return 0;
}
while (n > 0) {
if (n % 10 == 6 && s[6] > s[9]) s[9]++;
else if (n % 10 == 9 && s[9] > s[6]) s[6]++;
else s[n % 10]++;
n /= 10;
}
int max = 0;
for (int i = 0; i < 10; i++) {
if (s[i] > max) max = s[i];
}
printf("%d ", max);
}
6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다. 라는 조건이 이 문제의 핵심이다.
내 경우에는 6이나 9를 써야하는 상황에서,
두 숫자중 덜 사용한게 있으면 해당 숫자를 사용하도록 하는 방식으로 풀었다.
세트의 개수는 가장 많이 사용한 숫자의 개수를 찾아서 구했다.
주의해야할 조건이 있다.
"N은 1,000,000보다 작거나 같은 자연수 또는 0이다."
'학습 정리 > 👨💻 PS Study' 카테고리의 다른 글
[C] 백준 10951번 - A+B-4 (EOF 개념) (0) | 2022.07.08 |
---|---|
[C] 백준 1283번 - 단축키 지정 (0) | 2022.07.08 |
[C] 백준 13015번 - 별찍기 23 (0) | 2022.07.07 |
[C] 백준 10808번 - 알파벳 개수 (0) | 2022.07.06 |
[C] 백준 1157번 - 단어 공부 (0) | 2022.07.06 |