https://www.acmicpc.net/problem/1475
#include <bits/stdc++.h>
#define endl "\n"
using namespace std;
int main(void) {
/******** C++ INIT ********/
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
/**************************/
/******** 변수 선언 ********/
string str;
int answer = 1;
vector<int> set;
/**************************/
/******** 구 현 ********/
// 벡터에 0~9 숫자타일 1개씩 추가
for (int i = 0; i < 10; i++) {
set.push_back(1);
}
cin >> str;
// 입력받은 각 자리수 별 타일 여유분 체크
for (int i = 0; i < str.size(); i++) {
int num = str[i] - '0';
// 타일 여유분 없을 때
if (set[num] == 0) {
// 6일 경우 9가 있는지 체크
if (num == 6) {
if (set[9] != 0) {
set[9]--;
continue;
}
}
// 9일 경우 6이 있는지 체크
else if (num == 9) {
if (set[6] != 0) {
set[6]--;
continue;
}
}
// 여유분 없으면 1세트 추가 후 각 타일 1개씩 추가
answer++;
for (int i = 0; i < 10; i++) {
set[i]++;
}
// 타일 1개씩 추가 후 사용
set[num]--;
}
// 타일 여유분 있을 때
else {
set[num]--;
}
}
cout << answer;
}
'알고리즘' 카테고리의 다른 글
C++ 알고리즘 - 1049 막대기 (0) | 2025.01.20 |
---|---|
C++ 알고리즘 - 1789 수들의 합 (0) | 2025.01.20 |
C++ 알고리즘 - 4673 셀프 넘버 (0) | 2025.01.19 |
C++ 알고리즘 - 1748 수 이어 쓰기 1 (0) | 2025.01.19 |
C++ 알고리즘 - 1476 날짜 계산 (0) | 2025.01.19 |