def check(n):
while True:
n_str = list(str(n))
check_3 = n % 3
if '3' in n_str or check_3 ==0:
n += 1
else:
return n
def solution(n):
list_tmp = []
count = 0
for i in range(1,101):
count += 1
count = check(count)
list_tmp.append(count)
answer = list_tmp[n-1]
return answer
프로시저 check를 우선 정의하였다. 이 프로시저는 임의의 숫자 n을 넣었을 때 숫자에 3혹은 3의 배수임을 검사하고, 만약 둘중 한 경우라면 n을 하나 더해 다시 검사한다. 만약 검사가 통과한다면 그대로 그 숫자를 리턴하는 프로시저이다.
10진수 사전을 만들기 위해 리스트를 사용했으며(step=1) 문제에서 범위를 100까지 주었으므로 for문을 통해 카운트를 하나씩 올리고 해당 카운트를 check 프로시저에 넣어 검사를 통해 새로운 count를 업데이트하게끔 하였다. 업데이트가 된 count값은 리스트에 순차적으로 쌓여 현실세계의 1~100 10진수 숫자들을 인코딩된 숫자들의 사전을 만든다.