백준 1110번 파이썬

877 단어 백준백준

문제를 처음보고 내가 헷갈렸던 게 한 자리수일 경우(10보다 작다면) 0을 앞에 붙이라는 말이었다

그래서 처음에는 input으로 입력받은 값이 10보다 작을때/이상일 때 나눠서 구하는 줄 알고 10보다 작을 때 입력받은 걸 str로 변환해서 0을 붙여주고 인덱싱/슬라이싱 기법으로 해야 하는 줄 알고 굉장히 시간을 많이 끌었다.

근데 생각해보니 9를 받았을 때 9나 09나 차이가 없는 걸 알고 내가 생각이 짧았구나 라는 걸 느꼈다

하.. 09같은 나..

n = int(input())
num=n #입력받은 수를 num이라는 변수에 저장
iter = 0 #반복주기를 뽑아내기 위한 iter변수 선언

while True :
#각 자리수를 분할해야 하며, 두자리 수 중 앞자리는 몫, 뒷자리는 나머지임
tenNum= num//10 #앞자리는 몫이므로 //를 이용해 몫을 구함, 대충 십자리라는 뜻
oneNum=num%10 #뒷자리는 나머지므로 %를 이용해 나머지를 구함, 대충 일자리라는 뜻
sumDiv=(tenNum+oneNum)%10 #두 개를 더 한후 뒷자리를 이어 붙이므로 두 개 합의 나머지
num = oneNum*10 + sumDiv #새로운 수가 만들어지면 num에 새롭게 저장해서 n과 비교

 iter+=1
 if(num==n) :
      break

print(iter)

좋은 웹페이지 즐겨찾기