코드
n = int(input())
i = 666 #1
cnt = 0
while(True):
if i//10 == 666 or i//100 == 666 or i//1000 == 666 or i//10000 == 666 or i % 1000 == 666 or i//10 % 1000 == 666 or i//100 % 1000 == 666 or i//1000 % 1000 == 666:
cnt += 1 #2
if cnt == n:
print(i)
break #3
i += 1
풀이
#1: 666이 연속으로 들어가는 수의 최소값은 666이므로, i=666부터 반복문을 시작한다.
#2: n의 최댓값은 10,000이고, 예제에서 n:500일 때 cnt:166699가 되므로,, 대략적으로 i가 1000000 이내라고 판단한다.
그리고 666이 연속으로 들어가는 수의 조건들을 만족했을 때, cnt를 1씩 더해준다.
#3: cnt가 n과 동일해지면, i를 출력하고 반복문을 탈출한다.
추가코드 (str 사용)
n = int(input())
series_num = 666
cnt = 0
while True:
if '666' in str(series_num):
cnt += 1
if cnt == n:
print(series_num)
break
series_num += 1
'👩🏻💻 Front-end > 👾 Algorithm' 카테고리의 다른 글
백준 2750 - 정렬 알고리즘 (Bubble/Selection/Insertion Sort Algorithm) (0) | 2022.05.19 |
---|---|
백준 1018 - 체스판 다시 칠하기 (Python) (0) | 2022.05.18 |
파이썬 7568 - 덩치 (Python) (0) | 2022.05.17 |
백준 2231 - 분해합 (Python) (0) | 2022.05.16 |
백준 2798 - 블랙잭 (Python) (0) | 2022.05.15 |