Problem Solving/백준

[백준-1436] 영화감독 숌

<문제>


<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에서 이정도의 난이도는 요구하지 않을 것 같아 분명 다른 솔루션이 있을거라고는 생각했는데 아무리 고민해봐도 생각이 전혀 나지 않아 결국 구글링을 해봤고 굉장히 명확하고 간단하고 가독성 좋은 코드를 발견하여 참고했다.

www.acmicpc.net/problem/1436

 

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