[백준/Python3] 더하기사이클 1110번

고정원·2021년 3월 5일
0

살려줘알고리즘

목록 보기
4/7

📍 문제 | https://www.acmicpc.net/problem/1110

문제번호 : 1110번
문제제목 : 더하기 사이클
개념 : while문
난이도: 하

풀이

이 문제의 경우 100보다 작은 수 하나를 입력 받아 각 자리 수를 더해 1의 자리 수를 새로운 수의 1의 자리에, 원래 수의 1의 자리를 10의 자리로 만들어 계속해서 더해가다 입력 받은 수와 같은 수가 나올 때까지의 횟수를 구하는 문제입니다.

출처 | https://gabii.tistory.com/entry/BaekJoonPython3-%EB%B0%B1%EC%A4%80-1110%EB%B2%88-%EB%8D%94%ED%95%98%EA%B8%B0-%EC%82%AC%EC%9D%B4%ED%81%B4

제출한 답

num = int(input())

if num < 10:
    num*=10

origin = num  #num은 newnum을 저장해서 반복문을 수행해야하므로 원래 값을 기억해줄 변수 선언
count = 0 # 로직이 몇번 돌았는지 카운팅 해 줄 변수 초기화
newnum = 0 #변화된 값을 만들어주고 num에게 전달해줄 중간 역할 변수 선언

while True:
    #만약 26이라면 2와 6을 분리 -> 2 + 6
    temp = (num // 10) + (num % 10)

    #원래 숫자의 일의 자리 숫자와 더해서 나온 더하기 값의 일의 자리 숫자를 합쳐 줘야함
    newnum = ((num % 10)*10) + (temp % 10)

    #그렇게 만들어진 새로운 숫자를  다시 쪼개서 temp에 주는 로직을 처리하기 위해 num을 넣어줌
    num = newnum
    count += 1 #반복문이 한번 돌았으니 카운팅 +1
    if newnum == origin: #수행 결과가 원래 값이랑 일치한지 검사
        break #일치 하면  while을 부수고 나오렴~
print(count)

🤷‍♀️풀면서 느낀점
문제를 많이 풀면 되겠지... 괜찮을거야... 밥이나 먹자
먹고 힘내야지.. while문 공부하렴

🚩항해99_ch2알고리즘 2021-03-05

profile
해결문제에 대해 즐겁게 대화 할 수 있는 프론트엔드 개발자

0개의 댓글