백준 - 1110 (Python) - 더하기 싸이클

박준영·2021년 6월 14일
0
post-thumbnail
post-custom-banner

백준 1110

더하기 싸이클

여태까지 파이썬 공부하면서 while문의 사용법이 뚜렷하게 와닿지 않았었는데 이번 문제 풀면서 조금 감이 잡히기 시작했다.
자바스크립트로 쓸 때는 이렇게까지 헷갈리지 않았던거 같은데.. 아마 다시 Js로 넘어가면 또 헷갈릴 듯 싶다.

우선 굉장한 시간을 잡아먹은 부분은 문제의 두 번째 줄.. 주어진 수가 10보다 작을 때 앞 자리에 0을 넣어 두 자리 수로 맞춰줘야 한다길래 당연히 문자열로 만들어 푸는 문제인 줄 알았으나.. 뜻대로 되지 않아 검색해 본 결과 고려하지 않아도 되는 조건이며 정수로도 풀 수 있는 문제였다.

n = int(input())
num = n
count = 0
while True:
    a = num // 10
    b = num % 10
    x = (a + b) % 10
    num = (b * 10) + x
    count += 1
    if (num == n): 
        break
print(count)
  • n : 입력값
    a : 십의 자리 수
    b : 일의 자리 수
    x : a와 b를 더한 값

이렇게 생각하면 되겠다.
while문을 돌려 num의 값이 첫 입력값과 같아질 때 빠져나오는 탈출 조건을 만들고, 한 번 while문이 돌때마다 count 횟수를 하나씩 추가해 카운팅하는 방식.

앞서 말한 고려하지 않아도 되는 부분의 이유는 n의 값이 한 자리 수인 경우 num의 a자리 수를 구할 때 0이 입력되고, 어차피 a + b의 부분에서 더하기라면 오류가 날 걱정이 없었던 것이다.

이번 문제 또한 풀만 한 것 같은데?란 안일한 생각과 함께한 바이다..

post-custom-banner

0개의 댓글