영화감독 숌
https://www.acmicpc.net/problem/1436
666이 연속으로 들어가는 숫자들을 차례대로 찾아야 한다.
처음에는 666을 고정시켜 놓고 _666, _ _666 과 같이 빈 칸에 수를 배열할까 생각했다. 그런데 이렇게하면 _666_과 같은 경우를 따로 생각해줘야 하기 때문에 모든 수를 순서대로 탐색하는 방법으로 코드를 작성했다.
1
2
3
4
5
6
7
8
9
|
N = int(input())
num = 666
while True:
if '666' in str(num):
N -= 1
if N == 0:
print(num)
break
else: num += 1
|
cs |
666부터 시작이기 때문에 초기 숫자를 666으로 설정했다.
숫자를 문자로 바꿔서 '666'이 존재하면 N번째에서 1을 빼주고, N이 0이 되면 그 수를 출력한다.
666이 들어간 N번째 수를 찾지 못하면 수를 하나 증가시켜 다시 확인한다.
in 덕분에 생각보다 쉽게 해결할 수 있었다.
포함연산자
in과 not in은 포함연산자라고 한다. 데이터 안에 찾고자 하는 값이 있는지 확인해서, 존재하면 True, 존재하지 않으면 False를 반환한다.
string뿐만 아니라 list, tuple, dictionary에서도 사용할 수 있다.
자료형 | 특징 |
string | 대소문자 구분함 |
list | 자료형과 자료가 일치해야 한다 list = [2, "3", [4], [5, 6]] 2 in list # True 3 in list # False 4 in list # False [4] in list # True 5 in list # False 5 in list[3] # True |
tuple | 리스트와 같다 |
dict | key값만 확인한다. value 값중에 존재여부를 확인하고 싶으면 a in dict.values() 를 사용해야 한다. |
참고한 사이트
http://parkjuwan.dothome.co.kr/wordpress/2017/03/20/python-in-operator/
https://blockdmask.tistory.com/547
'알고리즘' 카테고리의 다른 글
백준 알고리즘(파이썬) - 2751번 (0) | 2021.08.25 |
---|---|
백준 알고리즘(파이썬) - 2750번 / 선택정렬 (0) | 2021.08.25 |
백준 알고리즘(파이썬) - 1018번 (0) | 2021.08.24 |
백준 알고리즘(파이썬) - 7568번 (0) | 2021.08.23 |
백준 알고리즘(파이썬) - 2231번 (0) | 2021.08.23 |