※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 14470번 방 번호이다.
문제는 아래 링크를 확인하자.
1475번: 방 번호
첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수 또는 0이다.
www.acmicpc.net
이 문제를 풀기 위해서, 먼저 주어진 자연수를 10진수로 표기할 때 0~9가 각각 몇 개씩 필요한지 조사한다.
그리고, 6과 9의 개수는 같이 조사한다.
아래는 제출한 소스코드이다.
#include <iostream>
#include <string>
#include <set>
using std::cin;
using std::cout;
using std::string;
using std::multiset;
int main()
{
string n; // 자연수 n을 문자열로 읽어온다
cin >> n;
int nlen = n.length();
multiset<int> ms;
for (int i = 0;i < nlen;i++) {
ms.insert(n[i]); // n의 각 자릿수를 multiset에 넣는다.
}
int mx = 0;
for (int i = 48;i < 57;i++) { //48~57: 0~9의 ASCII 코드 번호, 9는 6에서 같이 세니 제외
int cnt = ms.count(i);
if (i == 54) { //6의 개수를 셀 때
cnt += ms.count(57) + 1; //9의 개수를 같이 센다.
cnt /= 2; //1을 더해 2로 나누면 필요한 세트의 개수를 알 수 있다.
}
if (cnt > mx) {//필요한 가장 많은 세트수를 구한다
mx = cnt;
}
}
cout << mx;
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 1026 // C++] 보물 (0) | 2021.01.04 |
---|---|
[BOJ 1977 // C++] 완전제곱수 (0) | 2021.01.03 |
[BOJ 10988 // C++] 팰린드롬인지 확인하기 (0) | 2021.01.01 |
[BOJ 10808 // C++] 알파벳 개수 (0) | 2020.12.31 |
[BOJ 2576 // C++] 홀수 (0) | 2020.12.30 |