소스코드
#include <iostream>
#include <string>
using namespace std;
int digit[10];
int main(void) {
string N; cin >> N;
int len = N.length();
for (int i = 0; i < len; i++) {
digit[N[i] - '0']++;
}
//6과 9처리 (반절씩)
int six_nine = (digit[6] + digit[9] + 1) / 2;
digit[6] = six_nine; digit[9] = six_nine;
int M = 0;
for (int i = 0; i < 10; i++) {
if (digit[M] < digit[i]) M = i;
}
cout << digit[M] << endl;
return 0;
}
1. input을 string으로 받고, 각각의 자리에 해당하는 숫자를 인덱스로 하여 각 숫자의 개수를 세준다.
2. 6과 9는 같이 쓸 수 있기 때문에 반절씩 저장해준다. 그러나 나누기 2를 하는 과정에서 소숫점이 버림되므로 +1을 한 다음 나누기를 한다.
3. 가장 개수가 많은 숫자를 찾고 출력해준다.
'개인 공부 > 코딩테스트' 카테고리의 다른 글
[C++][leetcode] Min Stack :: seoftware (0) | 2020.04.12 |
---|---|
[c++][leetcode] Backspace String Compare :: seoftware (0) | 2020.04.10 |
[C++][백준] 14502번 연구소 :: seoftware (0) | 2020.04.10 |
[C++][leetcode] Middle of the linked list :: seoftware (0) | 2020.04.09 |
[c++][leetcode] Counting Elements :: seoftware (0) | 2020.04.07 |
댓글