Programmers_LV0_저주의 숫자3

jkky98·2023년 2월 18일
0

CodingTraining

목록 보기
15/61

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진수 숫자들을 인코딩된 숫자들의 사전을 만든다.

profile
자바집사의 거북이 수련법

0개의 댓글