[1110] 더하기 사이클

Sarah·2021년 11월 16일
0

BaekJoon

목록 보기
4/8

문제

  • 0 <= N <= 99

  • N < 10인 경우 N = 0N / 아닌경우 N = N
    -> N의 오른쪽 수 = A

  • 각 자리의 숫자를 더한다.
    -> 합의 오른쪽 수 = B

  • new_num = AB

    반복해서 처음 N과 동일할 때까지의 사이클 길이 구하는 프로그램

코드


def bfs(x):
    global N, cnt
    cnt += 1

    # N이 10보다 작으면 앞에 0을 붙여서 두자리수 만들고
    if x < 10:
        x = '0' + str(x)
    else:
        x = str(x)

    # 각 자리의 숫자를 더한다
    sum_num = str(int(x[0]) + int(x[1]))

    # 주어진 수의 오른쪽 자리 수와
    # 합의 가장 오른쪽 자리수를 이어 붙이면 새로운 수
    new = x[1] + sum_num[-1]

    if int(new) == N:
        return
    else:
        bfs(int(new))
    return


   
N = int(input())
cnt = 0

bfs(N)

print(cnt)

TIL

  • 두자리 이상 숫자에 인덱스를 주기 위해 str 변환
profile
2021.06 ~

0개의 댓글