-
[Baekjoon(백준)][1436번] 영화감독 숌(C++)2024년 01월 31일
- 유니얼
-
작성자
-
2024.01.31.:31
728x90안녕하세요! 오늘은 코딩테스트 문제 중 하나인 "영화감독 숌" 문제를 해결하는 방법에 대해 설명하려고 합니다. 이 문제에서는 특정 패턴(666이 연속으로 들어가는)을 가진 숫자를 찾는 것입니다 문제를 해결하는 과정과 코드를 자세히 알아보겠습니다.
문제링크:
https://www.acmicpc.net/problem/1436
1436번: 영화감독 숌
666은 종말을 나타내는 수라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타워
www.acmicpc.net
문제 개요
"영화감독 숌" 문제에서는 특정 패턴(666이 연속으로 들어가는)을 가진 숫자를 찾는 것입니다. N번째로 작은 '종말의 수'를 찾아야 합니다. 예를 들어, 첫 번째 종말의 수는 666, 두 번째는 1666입니다.
해결 방법
문제를 해결하기 위해, 666부터 시작하여 각 숫자에 666이 포함되어 있는지 확인하고, N번째로 해당 패턴을 만족하는 숫자를 찾아야 합니다.
코드 구현
#include <iostream> #include <vector> #include <string> using namespace std; // 숫자에 666이 연속으로 들어가는지 확인하는 함수 bool go(int s) { string d = to_string(s); for (int i = 2; i < d.size(); i++) { if (d[i - 2] == '6' && d[i - 1] == '6' && d[i] == '6') { return true; } } return false; } int main() { ios_base::sync_with_stdio(false); cin.tie(); cout.tie(); int n = 0; cin >> n; int start = 666; vector<string> strs; while (strs.size() < n) { if (go(start)) { strs.push_back(to_string(start)); } start++; } cout << strs[n - 1] << "\n"; }
코드 설명
이 코드는 '666'이 들어간 숫자를 순차적으로 찾아가는 방식을 사용합니다. go 함수는 주어진 숫자에 '666'이 연속으로 들어가는지 확인합니다. 만약 조건을 만족하면 해당 숫자를 strs 벡터에 추가합니다. 이 과정을 N번째 종말의 수를 찾을 때까지 반복합니다.
결론
"영화감독 숌" 문제는 문자열 처리와 간단한 반복문을 사용하여 해결할 수 있습니다. 특정 패턴을 만족하는 숫자를 찾는 것이 핵심이며, 이를 위해 숫자를 문자열로 변환하여 패턴을 검사하는 방식을 사용합니다.
반응형다음글이전글이전 글이 없습니다.댓글