알고리즘 공부/파이썬(Python)

백준 1110번 더하기 사이클 파이썬

마달랭 2024. 7. 5. 00:55
반응형

리뷰

문자열로 접근해야 하나 싶었지만 오히려 더 복잡해 질 것 같아서 그냥 지저분하게 구현하게 되었다. 최적화 코드가 있을 것 같긴 하다.

 

문제 풀이

  1. 우선 새로운 숫자를 구해준다.
  2. 수가 10 이상일때 일의 자리 수 * 10 + 각 자릿수를 더한 값의 일의 자리 수
  3. 수가 10 미만일때 일의 자리 수 * 10 + 일의 자리 수
  4. result는 1로 초기화 해준다. (이미 한번 실행 한 상태)
  5. while문을 돌며 result를 증가 시키고 작업을 반복해준다.
  6. 초기 n값과 현재 수가 동일할 경우 break 후 result값 출력

 

참고 사항

없음

 

 

정답 코드

def q1110():
    # 백준 1110번 더하기 사이클 파이썬
    n = int(input())
    if n // 10:
        n2 = (n % 10 * 10) + ((n // 10 + n) % 10 % 10)
    else:
        n2 = n * 10 + n
    result = 1
    while n != n2:
        result += 1
        if n2 // 10:
            n2 = (n2 % 10 * 10) + ((n2 // 10 + n2) % 10 % 10)
        else:
            n2 = n2 * 10 + n2
    print(result)
q1110()

 

 

728x90
반응형