백준 2033 반올림

문제

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

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

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

예제 입력 1
15

예제 출력 1
20

풀이 과정

반올림을 결정하기 위해 10의 배수를 반으로 나눈 것과 비교했다.

코드

N = int(input())

result = N
d = 10
while N > d:
    if result % d >= d // 2:
        result += d
    result -= (result % d)
    d *= 10

print(result)

백준 2033 반올림

좋은 웹페이지 즐겨찾기