코딩테스트/백준
백준[1436] - 영화감독 숌
문제
아이디어
- 종말의 수 = 666을 연속으로 갖는 수
ex) 666, 1666, 2666, 3666, 4666, 5666, 6660, 6661, 6662, 6663, ...
- 별다른 방법 없이, 1부터 '666'이 있는지/없는지 비교해야 한다.
작성한 코드
N = int(input())
count = 0
num = 1
while True:
if '666' in str(num):
count += 1
if count == N:
print(num)
break
num += 1
- N은 몇 번째(로 작은 종말의 수인지?)에 대한 정보를 담고 있는 변수로, input()으로 입력받고 Int형으로 형변환 한다.
- 1부터 비교하면서 종말의 수가 나올 때 1씩 증가시켜줄 count 변수를 선언한다.
- 1부터 비교하기 위해 num을 선언한다.
- while True: 로 무한반복을 돌린다.
- 만약 '666'이 문자열로 변환한 num에 존재하는지 in을 확인해서 체크한다. → 있다면 count를 1씩 증가시킨다.
- 만약 입력했던 N의 값과, count의 값이 일치한다면,
그때 해당 값에 해당하는 종말의 수인 num을 print()로 출력하고, break문으로 while문을 벗어난다.
- 위와 같은 조건이 아닐 경우에는, 그냥 num의 값을 1씩 증가시키면서 다시 검사한다.
반응형
'코딩테스트 > 백준' 카테고리의 다른 글
백준[24480] - 알고리즘 수업 (깊이 우선 탐색 2) (0) | 2023.02.28 |
---|---|
백준[24479] - 알고리즘 수업 (깊이 우선 탐색 1) (0) | 2023.02.28 |
백준[7568] - 덩치 (0) | 2023.02.13 |
백준[2231] - 분해합 (0) | 2023.02.11 |
백준[2798] - 블랙잭 (0) | 2023.02.11 |
댓글