[BOJ 1110] 더하기 사이클_파이썬

Gooder·2021년 4월 12일
1

알고리즘_문제풀기

목록 보기
3/25

1. 문제링크

문제 링크

2. 풀이 전 계획 및 생각

코드를 작성하기 전에 제일 먼저 주어진 요구사항을 파악했습니다.
문제에 적힌 조건대로만 풀어주면 되는 문제여서 그대로 구현하자고 생각했습니다.
앞자리 숫자를 front, 뒷자리 숫자를 back이라 두고 연산을 시행한 횟수를 count에 담기로 했습니다. 최소 1번의 연산은 필요하기 때문에 count는 1로 초기화했습니다.

3. 풀이

n = int(input())
count = 1
front, back = n // 10, n % 10
front = (front + back) % 10
new_num = back * 10 + front
while new_num != n:
    front = new_num // 10;
    back = new_num % 10
    front = (front + back) % 10
    new_num = 10*back + front
    count += 1

print(count)

4. 풀이하면서 막현던 점과 고민했던 점

막혔던 점은 크게 없었습니다. 주어진 조건에 따라서 코드를 작성했습니다. 처음에는 코드를 아래처럼 작성했습니다.

n = int(input())
count = 1
front, back = n // 10, n % 10
if n < 10:
    front = n
    back = n
else:
    front = n // 10;
    back = n % 10
    front = (front + back) % 10

new_num = back * 10 + front
while new_num != n:
    if new_num < 10:
        front = new_num
        back = new_num
    else:
        front = new_num // 10;
        back = new_num % 10
        front = (front + back) % 10
    new_num = 10*back + front
    count += 1

print(count)

중복되는 부분을 제거해주면서 코드를 간결하게 만들었습니다.

5. 풀이 후 알게된 개념과 소감

문제를 처음 봤을 때, 요구사항이 뭔지 잘 파악하면 언뜻보기에 까다로워보이는 문제도 금방 해결할 수 있다는 것을 알았고, 차근차근 풀면 된다는 걸 배웠습니다.

profile
세상을 변화시킬 신스틸러 서비스를 만들고싶은 개발자 Gooder 입니다.

0개의 댓글