[BOJ] 1436 영화감독 숌

1 분 소요

완전탐색 예제

문제


문제 풀이


문제 리뷰

처음에는 쉬운 듯 했으나,,,,, 한참 헤맸다!
초기의 코드는 위의 코드랑 아예 달랐다.
원래는 뒤에서부터 숫자를 자르면서 카운팅하는 방식으로 했는데
그 코드는 연속적인 숫자 판별을 하지 못했다.
뭔가 노가다적인 방법 밖에 생각나지 않아서 다른 분들 코드를 참고해보았다.
어떤 분이 contain 함수를 사용해서 그 부분을 참고해서 사용했다.

하지만 반복문을 돌릴 때, 어떤 수로 초기화를 해야할지 도무지 감이 안왔다.
처음에는 (num - 1) * 1000으로 초기화를 했었는데
이건 한자리 숫자는 값이 잘 나오지만 자릿 수가 커질 수록 전혀 틀린 값이 나왔다..

많은 분들이 666으로 초기화를 하셨는데
그러면 계속 숫자가 커져도 666만 나와서 이해가 가지 않았다.
하지만 내가 너무 생각이 짧았다..
앞자리 숫자에 집착하지 말고 한 턴씩 돌아간다는 생각도 해봤어야 했다!

연속된 숫자 666이 나온 카운트가 num 값과 같을 때!
그 때의 i 값이 우리가 원하는 정답일 것이다.
한 턴씩 돌아간다고 생각하면 조금 이해가 쉬울 수도 있을 것 같다.

1 : 666 / 2 : 1666 …
1부터 반복문을 돌게 된다면 if문에 666 / 1666 이 순서로 걸리게 될 것이다.
num 값이 2라면 값은 1666이 나와야한다.
반복(턴)을 2번 돌면 답이 1666이 나올 것이다.
그래서 while문의 탈출 조건이 turnCnt와 num이 같을 때인 것이다!

TMI

변수 초기화에서 막혀서 너무 답답했다..
오늘은 나 혼자의 힘으로 풀었다기보다는
답안을 참고하여 푼 것 같다..
그래도 이해해서 다행이긴 하지만..!
더 열심히해서 내가 혼자 힘으로 많은 문제들을 풀 수 있었으면 좋겠다!

1일 1알고리즘 완료🤓

댓글남기기