PS/BaekJoon
[1475] 방 번호 - 배열 ★☆☆☆ / 복습 ●
JIK_
2021. 11. 23. 16:40
[ 문제 ] : https://www.acmicpc.net/problem/1475
1475번: 방 번호
첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다.
www.acmicpc.net
[ 문제 접근 ]
- 입력에 해당하는 숫자에 맞게 0~9 까지 배열을 만들어 count 하는 문제.
[ 최종 코드 ]
#include<iostream>
#include<algorithm>
using std::cout; using std::cin;
int n;
int arr[10];
int main() {
std::ios::sync_with_stdio(false);
cin.tie(nullptr); cout.tie(nullptr);
cin >> n;
// 각 자리수 배열 크기++
while (n) {
arr[n % 10]++;
n /= 10;
}
int max_idx = 0;
for (int i = 0; i < 10; i++) {
if (i == 6 || i == 9) { // 6 이랑 9 일 때는 따로 처리
max_idx = std::max((arr[6] + arr[9] + 1) / 2, max_idx);
continue;
}
max_idx = std::max(arr[i], max_idx);
}
cout << max_idx;
return 0;
}
[ Key Point ]
👉 6이랑 9일때는 서로 호환이 가능하니깐 두 값을 합쳐 반으로 나눠줘야 개수가 나온다.
floor, ceil (내림, 올림) 없이 2로 나웠을때 반올림 하려면
(arr[6] + arr[9] + 1) / 2
+1을 더해주고 나누면 된다.