https://www.acmicpc.net/problem/2909
난이도 : 브론즈 2
태그 : 수학, 구현
설명
단순히 자리수에 반올림을 처리하면 되는 문제이지만,
파이썬으로 반올림을 할 경우 한가지 주의할 점이 있습니다.
일반적으로 사용하는 5 이상이면 올림, 4이하면 내림하는 방식을 사사오입이라 합니다.
하지만 파이썬은 오사오입 방식을 사용하는데,
5보다 크면 올리고, 5보다 작으면 내리고,
5일 경우, 앞자리가 홀수면 올림, 앞자리가 짝수면 내림하는 방식입니다.
소스코드
c, k = list(map(int, input().split()))
print(int(round(c + 0.1, -k)))
오사오입 방식에 유의하여 0.1만큼 더한 후 반올림 연산을 하여 5일때도 올림 처리를 하고,
int형으로 변환해 소숫점을 제거하여야 합니다.
후기
파이썬으로 반올림을 다룰때 흔히 실수할 수 있는 오사오입에 주의하여 풀어야 합니다.
'코딩테스트 > Python' 카테고리의 다른 글
[백준 2999번] [Python] 비밀 이메일 (0) | 2022.11.29 |
---|---|
[백준 2057번] [Python] 팩토리얼 분해 (0) | 2022.11.29 |
[백준 1427번] [Python] 소트인사이드 (0) | 2022.11.26 |
[백준 23253번] [Python] 자료구조는 정말 최고야 (0) | 2022.11.18 |
[백준 25643번] [Python] 문자열 탑 쌓기 (0) | 2022.11.18 |