https://www.acmicpc.net/problem/1475
1475번: 방 번호
첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다.
www.acmicpc.net
풀이 :
- 다솜이의 방 번호를 문에 붙이는데 필요한 세트의 갯수를 구해야 한다
- 6과 9는 호환이 가능하기 때문에 따로 계산해줄 필요가 있다
ex) 66 = 6 하나, 9 하나 -> 1세트
- 6과 9를 제외한 다른 숫자의 경우 최대 갯수가 세트의 갯수가 된다
코드 :
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int main(){
cin.tie(NULL);
ios::sync_with_stdio(false);
int cnt, Max, arr[10] = {0, };
string s;
cnt = Max = 0;
cin >> s; //자릿수 구하기 쉽게 문자열로 입력 받음
for(int i=0; i<s.size(); i++){
arr[s[i]-'0']++; //문자->숫자로 구하기 위해 '0'빼주고, 카운트
}
for(int i=0; i<9; i++){ //6과 9는 따로 계산하기 위해 for문은 8까지만 탐색
if(i == 6){ //윗줄과 마찬가지 이유로 6은 건너뛴다
continue;
}
if(arr[i] > Max){ //배열의 최댓값을 찾아준다
Max = arr[i];
}
}
arr[6] = (arr[6] + arr[9] + 1) / 2; //6과 9는 합쳐주고,
//나누기 2를 하면 홀수일 경우 1 작아지기 때문에 미리 더하고 나눠준다
Max = max(Max, arr[6]); //구해놓은 최댓값과 arr[6] 중 최댓값 출력
cout << Max << '\n';
}
'PS_Baekjoon' 카테고리의 다른 글
[백준 C++] 21921번 : 블로그 (0) | 2023.03.24 |
---|---|
[백준 C++] 16165번 : 걸그룹 마스터 준석이 (1) | 2023.03.23 |
[백준 C++] 1431번 : 시리얼 번호 (1) | 2023.03.21 |
[백준 C++] 13417번 : 카드 문자열 (0) | 2023.03.20 |
[백준 C++] 11441번 : 합 구하기 (1) | 2023.03.19 |