백준 1436 - 영화감독 숌

Updated:

C++

1436 번 - 영화감독 숌

문제

숌이 만든 N번째 영화의 제목에 들어간 숫자를 출력하는 프로그램을 작성하시오.

문제 출처

접근 방법

  1. 666이 들어간 가장 최소 값인 666부터 무한대 까지 loop를 돈다.
  2. “666”이 포함된 숫자를 발견하면, 해당 숫자를 저장하고 idx를 늘린다.
  3. idx가 처음에 주어진 n과 같아지면 loop를 빠져나간다.

구현

“666”이 포함된 문자열을 찾는 방법은 아래의 string의 find함수를 통하여 찾았다.

if (a.find(b) != string::npos) {
	//찾음
}
else{
	//못찾음
}

코드

#include <iostream>
#include <vector>
#include <string>

using namespace std;

int n;

int main() {
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	cin >> n;
	int i = 666, cnt = 0, result = 0;
	string temp;
	while (cnt != n) {
		temp = to_string(i);
		if (temp.find("666") != string::npos) {
			result = i;
			cnt++;
		}
		i++;
	}
	cout << result;
	return 0;
}

후기 및 개선할 점

후기:

완전 탐색이라는 점을 생각하며 모든 숫자를 탐색해보기로 하여 후딱 만들었는데, 쉽게 풀려서 당황했다.