알고리즘 문제/백준

반올림 #2033

BEstyle 2023. 1. 8. 15:50

문제

정수 N이 주어져 있을 때 이 수가 10보다 크면 일의 자리에서 반올림을 하고, 이 결과가 100보다 크면 다시 10의 자리에서 반올림을 하고, 또 이 수가 1000보다 크면 100의 자리에서 반올림을 하고.. (이하 생략) 이러한 연산을 한 결과를 출력하시오.

입력

첫째 줄에 정수 N이 주어진다. (0 ≤ N ≤ 99,999,999)

출력

첫째 줄에 위와 같은 연산을 한 결과를 출력하시오.

예제 입력 1 복사

15

예제 출력 1 복사

20

예제 입력 2 복사

446

예제 출력 2 복사

500

출처

  • 문제의 오타를 찾은 사람: eric00513

알고리즘 분류


import sys

n = sys.stdin.readline().rstrip()
alist = list(map(int, n))
lo=0
for i in range(len(n)-1,0,-1):
    if alist[i]+lo>=5:
        lo=1
    else:
        lo=0
    alist[i]=0
alist[0] +=lo
print(int("".join(map(str,alist))))