<문제>
<Code>
//1436] 영화감독 숌
#include <iostream>
using namespace std;
int main() {
//freopen("input.txt","rt", stdin);
int n, temp;
int cnt=0; //현재 몇번째 종말의 숫자인지
int title=0; //영화 제목 (답)
scanf("%d", &n);
//모든 수를 탐색하면서 종말의 숫자인지 확인
while (cnt!=n){ //찾고자 하는 n번째 종말의 수일때 루프탈출
title++;
temp = title;
//수에 6이 적어도 3개이상 들어가는지 판별
while (temp != 0){ //나머지가 0이 될 때까지 나눠서 종말의 숫자인지 확인
if (temp % 1000 == 666){ //종말의 숫자라면
cnt++;
break;
}else{
temp /= 10; //1의 자리수 삭제
}
}
}
printf("%d",title);
return 0;
}
<Comment>
- 처음으로 생각한 로직은 n번째 종말의 숫자라면 그 n을 666앞에 붙히면 될것이라고 생각했다. 하지만
666, 1666, 2666, 3666, 4666, 5666 다음 숫자는 6666이 아닌 6660이고 6661, 6662, ,,, 이런식으로 진행되기 때문에 이걸 계속 계산해주기에는 너무 복잡하고 어려울 것 같았다. solved.ac 실버1도 아니고 실버5에서 이정도의 난이도는 요구하지 않을 것 같아 분명 다른 솔루션이 있을거라고는 생각했는데 아무리 고민해봐도 생각이 전혀 나지 않아 결국 구글링을 해봤고 굉장히 명확하고 간단하고 가독성 좋은 코드를 발견하여 참고했다.
1436번: 영화감독 숌
666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타
www.acmicpc.net
'Problem Solving > 백준' 카테고리의 다른 글
[백준-22113] 창영이와 버스 (0) | 2021.07.21 |
---|---|
[백준-1931] 회의실 배정 (0) | 2021.05.10 |
[백준-2750] 수 정렬하기 (0) | 2021.04.30 |
[백준-1874] 스택 수열 (0) | 2021.03.24 |
[백준-10773] 제로 (0) | 2021.03.24 |