6과 9를 바꿔서 사용할 수 있으므로 0~8까지만 체크하고 그거에 대한 예외처리들만 해줬다.
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
int roomNumber;
int func()
{
int temp = 0;
vector<int> number;
number.resize(9); // 0~8까지 체크
do
{
temp = roomNumber % 10;
if (temp == 9)
number[6] += 1;
else
number[temp] += 1;
roomNumber /= 10;
} while (roomNumber >= 1);
number[6] % 2 ? number[6]++ : 0;
number[6] /= 2;
sort(number.begin(), number.end(), greater<int>());
return number[0];
}
int main()
{
cin >> roomNumber;
cout << func();
}
쉬워보이기도 했고 금방 풀어서 제출했는데 안되길래 0일 때도 해보고 이것저것 해봤는데
while문 조건에 number >= 1 를 해줘야 되는데 그냥 >만 해줘서 1199를 했을 때 두 세트가 아닌 한 세트가 출력되고 있었다.
간만에 풀어서 그런가 또 초심을 잃었다..
'알고리즘 & 자료구조 > 백준' 카테고리의 다른 글
[C++/알고리즘] 백준 11047 (동전0) (0) | 2021.04.11 |
---|---|
[C++/알고리즘] 백준 1302 (베스트셀러) (0) | 2021.04.09 |
[C++/알고리즘] 백준 13904 (과제) (0) | 2020.10.18 |
[C++/알고리즘] 백준 11279 (X) (0) | 2020.01.13 |
[C++/알고리즘] 백준 7576 (토마토) (0) | 2019.12.01 |