Baekjoon 문제 풀기 (1436번 : 영화감독 숌) Python
1436번 : 영화감독 숌
1. 문제읽기
특정 문자열이 포함된 숫자 카운트하기
특정 문자열이 포함 된 문자열을 카운트하는 문제이다.
2. 제출 코드
얼추 비슷하게 다가는 간 것 같은데 역시나 고질병인 모든 경우의 수를 구해놓고 해결하기 병이 도져서 코드가 갈수록 난해해졌다.
숫자와 문자열을 합해서 해결하려고 한 것 까지는 좋았는데, 5666 이후 6660이 되는 규칙을 도저히 찾을 수가 없었다.
count 함수를 쓰려고 해봤는데, in을 사용한다는 개념을 알았으면 풀었을 것 같다!
완전탐색 문제라고도 생각을 못했다.
어쨌든 간단하게 생각했다면 풀 수 있었을지도 모르겠다..
아쉬웠다.
역시나 제출도 못한 미완성 코드지만 남겨놓기.
n = int(input())
arr = []
new_arr = []
num = 0
six = "666"
while n > len(new_arr):
if num == 6 or num == 66 or num == 666 or num == 6666:
for i in range(10):
arr.append(int(six+str(i)))
arr.append(int(str(num) + six))
set_arr = set(arr)
new_arr = list(set_arr)
num += 1
new_arr.sort()
if n == 1:
print(666)
print(new_arr)
print(new_arr[n-1])
3. 공부할 것
num은 666 부터 시작해도 된다.
숫자를 1씩 증가시킬때마다 “666” 문자열이 num에 포함되어있으면 count를 1개씩 증가시킨다.
count 가 n과 동일하다면 찾는 n번째 수이므로 num을 출력한다.
n = int(input())
num = 666
count = 0
while True:
if "666" in str(num):
count += 1
if count == n:
print(num)
break
num += 1
댓글남기기