알고리즘 모음(C++)

백준 1436 - 영화감독 숌(C++) 본문

백준

백준 1436 - 영화감독 숌(C++)

공대생의 잡다한 사전 2021. 11. 3. 15:57

문제 링크입니다. https://www.acmicpc.net/problem/1436

 

1436번: 영화감독 숌

666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타

www.acmicpc.net

브루트포스 알고리즘 문제였습니다.

문제 조건
출력 예시

"666"을 포함하여 영화번호를 정하는 문제였습니다.

1번 -> 666, 2번 -> 1666, 3번 -> 2666, 4번 -> 3666, 5번 ->5666, 6번 -> 6660....

666이 포함되어 있지만, 숫자가 계속 증가하고 있음은 알수 있습니다.

따라서 숫자를 계속 증가하면서, 666이 발견되면 순서를 하나 증가합니다.

이때 순서가 N과 값이 같아질 때, 해당 번호를 출력하면 되는 문제였습니다.

 

문제 접근 방법

1. title을 계속 증가한다.

2. title을 string으로 바꾼 뒤, 666이 존재하는지를 확인한다.

3. 666이 존재한다면 ans을 하나 증가한다.

4. ans의 값이 N과 같아지면 title을 출력한다.

 

 

문제 접근 방법 - 2번

이때 string으로 바꾸는 이유는 string 에서 find()기능을 가지고 있어서입니다. -> 666을 찾기 쉽습니다.

 

 

자세한 것은 코드를 참고해주세요

#define _CRT_SECURE_NO_WARNINGS
#include <cstring>
#include <vector>
#include <iostream>
#include <algorithm>
#include <queue>
#include <cmath>
#include <cstdio>
#include <string>
#include <deque>

using namespace std;

int N;
int title = 665;
string name;

void solve() {
	int ans = 0;
	while (1) {
		title++;
		name = to_string(title);
		if (name.find("666") != -1) {
			ans++;
		}
		if (ans == N) {
			cout << title;
			break;
		}
	}
}

int main() {
	cin.tie(0);
	cout.tie(0);
	cin >> N;
	solve();
	return 0;
}

 

 

질문 및 조언 댓글 남겨주세요!

'백준' 카테고리의 다른 글

백준 1966 - 프린터 큐(C++)  (0) 2021.11.05
백준 4949 - 균형잡힌 세상(C++)  (0) 2021.11.03
백준 10866 - 덱(C++)  (0) 2021.11.03
백준 10816 - 숫자 카드2(C++)  (0) 2021.11.03
백준 1806 - 부분합(C++)  (0) 2021.11.02