백준 1110번 파이썬
문제를 처음보고 내가 헷갈렸던 게 한 자리수일 경우(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)
Author And Source
이 문제에 관하여(백준 1110번 파이썬), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kyleee/백준-1110번-파이썬저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)