
https://www.acmicpc.net/status?user_id=idleh&problem_id=2909&from_mine=1
문제 전문은 링크 참조
문제가공
입력된 숫자 C를 입력된 숫자K의 자리수에서 반올림 하여 출력하자.
주의할 점
언뜻 보면 **round(C,-K)**로 간단하게 해결될 것 같지만, 파이썬의 round 함수는 round half even 방식으로 적용된다.
❕ Round half even?
반올림에 해당되는 수가 절반(5)인 경우, 앞자리 수가 짝수가 되도록 처리함.
위 내용을 참고하여 아래처럼 추가적인 규칙이 필요함.
- 반올림 자리의 수가 5인 경우 Round half even을 피하기 위해 1을 더해 줌.
- 1번 규칙을 위해 자리수를 파악할 때 C의자리수는 K보다 크거나 같아야함.
코드작성
c,k = map(int,input().split())
if k ==0: print(c)
else :
if len(c)>= k and str(c)[-k] =='5':
c += 1*(10)**(k-1)
print(round(c,-k))
'Python > 백준 (BOJ)' 카테고리의 다른 글
| [BOJ][B2]창영이의 일기장 - 2954 (0) | 2025.09.16 |
|---|---|
| [BOJ][B2]2009년 - 2948 (0) | 2025.09.15 |
| [BOJ][B2]KMP는 왜 KMP일까? - 2902 (0) | 2025.09.13 |
| [BOJ][B2]5와 6의 차이 - 2864 (0) | 2025.09.12 |
| [BOJ][B2]기숙사 바닥 - 2858 (0) | 2025.09.11 |