JiSoo's Devlog

[백준 / 파이썬] 1436번 영화감독 숌 본문

코테준비

[백준 / 파이썬] 1436번 영화감독 숌

지숭숭숭 2024. 1. 10. 15:33

n = int(input())
d = 666

while n != 0:
    if '666' in str(d):
        n -= 1
        if n == 0:
            break
    d += 1
print(d)

 

* 7번째는 6666이 아니라 6660

* 8번째는 7666이 아니라 6661

 

브루트 포스 알고리즘

- 완전 탐색 알고리즘 중 하나

- 가능한 모든 수를 조합하는 방식

 

ex)

n이 3이라면 n이 0이 아니니까 while문 반복

str(d) 안에 '666'이 있으니까 if문 반복

n이 2가 되고

d +=1 해주면 667

다시 if문으로 돌아가서 str(d)인 '667'에 '666'이 없으니까 d +=1 해주면 668

다시 if문으로 돌아가서 str(d)인 '668'에 '666'이 없으니까 d += 1 해주면 669

이 과정을 계속 반복하면 670, 671 ... 이렇게 가다가 d가 1666이 되는데 

if문에서 str(d)인 '1666'에 '666'이 있으니까 n이 1이 되고 d +=1 해주면 1667

위에처럼 같은 방식으로 while문을 반복하면 d가 2666이 되고 

'2666'에 '666'이 있으니까 n이 0이 된다

n == 0 이면 반복문 탈출이기 때문에 print(d)를 통해 2666이 출력되게 된다

 

 

 

728x90