백준(C++)/문제풀이
[백준1475/C++] 방번호
devhater
2023. 7. 13. 18:00
1.문제
https://www.acmicpc.net/problem/1475
1475번: 방 번호
첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다.
www.acmicpc.net
2. 문제 풀이
#include <iostream>
#include <bits/stdc++.h>
#pragma warning (disable:4996)
using namespace std;
int ans;
int arr[10];
int main(void) {
ios::sync_with_stdio(0);
cin.tie(0);
string s;
cin >> s;
for (auto e : s)
arr[e - '0']++;
for (int i = 0; i < 10; i++) {
if (i == 6 || i == 9) continue;
ans = max(ans, arr[i]);
}
ans = max(ans, (arr[6] + arr[9] + 1) / 2);
cout << ans;
}
3. 문제 평가 및 해설
실버5치고 굉장히 애먹었던 문제이다. 예외 케이스로 6과 9만 처리해주면 될 것 같아서 쉬운 문제라 생각했었는데, 마지막에 비교하는 과정을 생각하지 못해서 오답이 많이 났다.
이전의 풀이에서 인풋이 3339999로 주어졌다면, 아웃풋이 2가 나왔다. (정답은 3이다.)
6과 9로 가능한 SET의 수와 나머지의 수로 가능한 SET의 수를 비교해서, 둘 중 큰 값을 뽑아내는 것이 이 문제의 핵심인 것 같다.