본문 바로가기

백준/python

2033:반올림(python)

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