[문제]
https://www.acmicpc.net/problem/1436
[풀이]
처음에는 슬라이싱을 이용해 str(i)[-3:] == '666' 이런 식으로 끝에서부터 세 자리씩 '666'과 같은지 비교해야 되나 했다. 생각해보니 문자열은 in을 이용해 간단하게 풀 수 있는 방법이 있었다.
i가 666부터 1씩 증가하는 while문이 있다.
만약 i를 str로 바꾼 문자열 내부에 '666'이 있다면 cnt를 1 증가시켜준다.
cnt가 입력값인 n과 일치한다면 i를 출력한 후 break문을 통해 while문을 탈출한다.
[코드]
import sys
if __name__ == '__main__':
n = int(sys.stdin.readline())
i, cnt = 666, 0
while True:
if '666' in str(i):
cnt += 1
if cnt == n:
print(i)
break
i += 1
'문제풀이 > BOJ' 카테고리의 다른 글
[Python] BOJ/백준 1966번 프린터 큐 (0) | 2021.08.05 |
---|---|
[Python] BOJ/백준 11651번 좌표 정렬하기 2 (0) | 2021.08.05 |
[Python] BOJ/백준 2231번 분해합 (0) | 2021.08.03 |
[Python] BOJ/백준 1874번 스택 수열 (0) | 2021.07.30 |
[Python] BOJ/백준 10816번 숫자 카드 2 (2) | 2021.07.28 |