250x250
반응형
Notice
Recent Posts
Recent Comments
Link
N
(SWEA c++)3809. 화섭이의 정수 나열 본문
728x90
반응형
문자열로 수를 처리한다.
우선 string형 벡터는 구할 수 있는 정수를 string 형태로 저장하는 변수다.
check는 구할 수 없는 정수 중 가장 작은 수를 발견하면 탈출하기 위한 변수다.
마지막으로 s는 string 형태로 수를 받아서 저장하는 변수.
<32번째 줄>
1 자리 수 ~ n 자리의 수까지 각각 구하여 v 벡터에 저장한다.
1 자리 수부터 받아오기 때문에 pow(10, i - 1) - 1 ~ pow(10, 1) 까지 수가 v 벡터에 저장되어 있는지 확인한다.
find 함수를 이용하여 숫자를 확인하면서 j가 v 벡터에서 없다면 그 수가 가장 작은 수를 의미하므로
check = false로 바꿔주고 탈출.
바깥 for문에서 check를 검사하여 false 인 경우 탈출하여 다음 테스트 케이스로 넘어가면 된다.
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
int main(void)
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int t;
cin >> t;
for(int tc = 1; tc <= t; tc++)
{
int n;
vector<string> v;
bool check = true;
string s = "";
cin >> n;
for(int i = 0; i < n; i++)
{
int tmp;
cin >> tmp;
s += to_string(tmp);
}
for(int i = 1; i <= s.size(); i++)
{
for(int j = 0; j < s.size(); j++)
{
string tmp = s.substr(j, i);
v.push_back(tmp);
}
for(int j = pow(10, i - 1) - 1; j < pow(10, i); j++)
{
if(find(v.begin(), v.end(), to_string(j)) == v.end())
{
cout << "#" << tc << " " << j << endl;
check = false;
break;
}
}
if(!check)
break;
}
}
return 0;
}
728x90
반응형
'SW Expert Academy' 카테고리의 다른 글
(SWEA c++)4047. 영준이의 카드 카운팅 (0) | 2020.11.10 |
---|---|
(SWEA c++)3975. 승률 비교하기 (0) | 2020.11.09 |
(SWEA c++)3750. Digit sum (0) | 2020.11.09 |
(SWEA c++)3499. 퍼펙트 셔플 (0) | 2020.11.09 |
(SWEA c++)3456. 직사각형 길이 찾기 (0) | 2020.11.09 |