https://www.acmicpc.net/problem/2033
2033번: 반올림
정수 N이 주어져 있을 때 이 수가 10보다 크면 일의 자리에서 반올림을 하고, 이 결과가 100보다 크면 다시 10의 자리에서 반올림을 하고, 또 이 수가 1000보다 크면 100의 자리에서 반올림을 하고.. (
www.acmicpc.net
문제
정수 N이 주어져 있을 때 이 수가 10보다 크면 일의 자리에서 반올림을 하고, 이 결과가 100보다 크면 다시 10의 자리에서 반올림을 하고, 또 이 수가 1000보다 크면 100의 자리에서 반올림을 하고.. (이하 생략) 이러한 연산을 한 결과를 출력하시오.
풀이
반올림할 기준점을 잡고 10을 곱해주거나 나머지 계산을 진행한 뒤 빼주면 된다.
코드
N = int(input()) #수를 입력
a = 10 #자릿수를 나눌 변수 생성
while N > a: #자릿수로 나눠질때까지 반복
if N % a >= a // 2: #만약 나눠진다면
N += a #그상태 10자리 반올림
N -= (N % a) #아니면 그냥 나머지를 계산
a *= 10
print(N)
'백준 > python' 카테고리의 다른 글
2729: 이진수 덧셈(python) (0) | 2023.09.14 |
---|---|
4344:평균은 넘겠지(python) (0) | 2023.09.14 |
5585: 거스름돈(python) (0) | 2023.09.14 |
2755: 이번학기 평점은 몇 점?(python) (0) | 2023.09.13 |
3181: 줄임말 만들기(python) (0) | 2023.09.13 |