◼ PS Note/백준

[백준] 1010번 : 더하기 사이클 (🥉브론즈 1) (Python)

SangYoonLee (SYL) 2023. 1. 20. 03:05
반응형

문제 바로 가기

 

1110번: 더하기 사이클

0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음,

www.acmicpc.net

 


풀이

  • 사용 언어 : Python
  • 풀이한 날짜 : 2021-09-18
# 풀이1: 문자열로 변환하여 풀이

def cycle(n):
  count = 0

  if len(n) == 1:
    n = '0' + n

  first_num = n
  new_num = ""

  while not first_num == new_num:
    count += 1
    if count > 1:
      n = new_num
    sum_num = str(int(n[0]) + int(n[1]))
    new_num = n[-1] + sum_num[-1]
  return count

n = input()
print(cycle(n))
# 풀이2: 정수 자료형으로만 풀이

def cycle(n):
  first_num = n
  count = 0
  new_num = -1

  while not first_num == new_num:
    count += 1
    if count > 1: n = new_num
    new_num = ((n%10)*10) + (n//10 + n%10)%10

  return count

n = int(input())
print(cycle(n))

(예전에 기록해둔 풀이를 그대로 옮겨온 것이기에, 부가 설명이 없다는 점 양해 부탁드립니다.)

 

반응형