[백준_python] 더하기 사이클 || 1110

2021. 7. 5. 00:55·🎯PS

1110번: 더하기 사이클 (acmicpc.net)

1110번: 더하기 사이클

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

www.acmicpc.net

 

이전 풀이

https://dmaolon00.tistory.com/9

[백준_python] math_factorial || 11050, 1110

math라는 모듈 안에는 다양한 함수들이 있는데 그 중 factorial함수를 불러와 사용한다. from math import factorial 1. 이항 계수 www.acmicpc.net/problem/11050 11050번: 이항 계수 1 첫째 줄에 \(N\)과 \(K\)..

dmaolon00.tistory.com

입력한 수의 십의 자리와 일의 자리를 합하고, 일의 자리를 십의 자리로, 합을 일의 자리로 재배열해가는 과정이다.
 
ex)
26 → 68 (2+6)→ 84 (6+8=14) →  42 (8+4=12) → 26 (4+2)
 
이전 풀이를 보면, 주어진 수를 10으로 나누어 몫과 나머지를 구하여서 while문을 통해 계산해주었다.
이번에는 몫과 나머지를 구하지 않고, 문자열을 이용하여 구해주도록 하였다.

# 더하기 사이클_4 (문자열)
n = a = input()
cnt = 0
if(int(a) < 10):
    a = "0" + a   # 주어진 수가 10보다 작은 경우, 앞에 0을 붙여줌

while(True):
    cnt += 1
    b = str(int(a[0]) + int(a[1]))
    if(int(b) >= 10):
        b = b[1]
    a = a[1] + b
    if(int(a) == int(n)):
        print(cnt)
        break

문자열임을 이용하여 a[0] , a[1]로 해주며 십의 자리와 일의 자리를 이용할 수 있도록 하였다.
자료형을 변환해주며 문자열일 경우 "1" + "2" = "12"이 되도록 해주었다.

 
 

처음 보자마자 문자열로 해야지 하고 해두고서 나중에 예전 풀이를 보면서 아.. 이렇게 몫과 나머지로 해줬었구나를 깨달았다.
시간을 비교해보면 예전 풀이가 좀더 시간이 적게 걸렸던 것을 보면, 자료형을 계속 변환해주어서 시간차이가 발생한 게 아닐까 싶었다.

반응형
'🎯PS' 카테고리의 다른 글
  • [백준_python] 나머지 || 3052
  • [백준_python] 숫자의 개수 || 2577
  • [백준_python] 블랙잭 || 2798
  • [백준_python] 아스키 코드 || 11654
dmaolon
dmaolon
프로그래밍을 공부한 내용을 기록하는 공간입니다.
  • dmaolon
    기록 남기기
    dmaolon
  • 전체
    오늘
    어제
    • ALL (260)
      • ➰ Series (5)
      • 🎯PS (168)
        • Algorithm (15)
      • ☕ Java (11)
      • 🍀 Spring Boot (29)
      • 💬 Database (9)
      • 🐣 Computer Science (14)
      • 👍 Daily (4)
      • 🎁ReactJS (4)
  • 인기 글

  • 최근 댓글

  • 최근 글

  • 태그

    dfs
    알고리즘
    자바
    코딩
    BFS
    Spring
    프로그래밍
    파이썬
    백준
    프로그래머스
  • hELLO· Designed By정상우.v4.10.1
dmaolon
[백준_python] 더하기 사이클 || 1110
상단으로

티스토리툴바