본문 바로가기
알고리즘/SWEA

[SWEA] 1288. 새로운 불면증 치료법

by hyerann 2019. 4. 25.

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV18_yw6I9MCFAZN&categoryId=AV18_yw6I9MCFAZN&categoryType=CODE&&&

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

www.swexpertacademy.com

vector의 사이즈가 10(0~9)이 될 때까지 숫자를 증가시키면서 string으로 바꾸고 index를 돌며 각 자리의 수를 구해 vector에 중복되지 않게 삽입했다.

#include <iostream>
#include <ios>
#include <vector>
#include <algorithm>
#include <string>
using namespace std;

int T, N;
string numStr;
vector<int> numbers;
int getResult();

int main() {
	cin.tie(0); ios::sync_with_stdio(0);
	cin >> T;
	for (int testCase = 1; testCase <= T; testCase++) {
		numbers.clear();
		cin >> N;
		cout << '#' << testCase << ' ' << getResult() << "\n";
	}
	return 0;
}

int getResult() {
	int newN = 0;
	while (numbers.size() != 10) {
		newN += N;
		numStr = to_string(newN);
		for (int i = 0; i < numStr.length(); i++) {
			bool flag = true;
			for (int j = 0; j < numbers.size(); j++) {
				if (numStr[i] - '0' == numbers[j]) {
					flag = false;
					break;
				}
			}
			if (flag) numbers.push_back(numStr[i] - '0');
		}
	}
	return newN;
}

댓글