구현, 수학

[백준] 2033. 반올림 풀이

hch06 2025. 2. 2. 20:26

https://www.acmicpc.net/problem/2033

 

일의자리 숫자가 5보다 큰지 확인하고 5보다 크다면 십의자리에 1을 더한 후 일의자리를 0으로 만들고, 십의자리 숫자가 5보다 큰지 확인하고 5보다 크다면 백의자리에 1을 더한 후 십의자리를 0으로 만들고...
이러한 과정을 가장 큰 자릿수까지 반복하여 나온 결과를 출력하는 방식으로 문제를 해결하였다.

 


C

더보기
#include <stdio.h>

int main() {
    int n; scanf("%d", &n);
    int i = 1;
    while(1){
        if(n > i*10){
            if((n / i) % 10 >= 5) n += i * 10;
            n -= ((n / i) % 10) * i;
        }
        else break;

        i *= 10;
    }
    printf("%d", n);
}

Python

더보기
n = int(input())

i = 1
while 1:
    if n > i*10:
        if (n // i) % 10 >= 5:
            n += i*10
        n -= ((n // i) % 10) * i
    else: break
    i *= 10
print(n)

 

'구현, 수학' 카테고리의 다른 글

[백준] 2292. 벌집 풀이  (0) 2025.02.02
[백준] 2163. 초콜릿 자르기 풀이  (0) 2025.02.02
[백준] 1929. 소수 구하기 풀이  (0) 2025.02.02
[백준] 1924. 2007년 풀이  (0) 2025.02.02
[백준] 1913. 달팽이 풀이  (0) 2025.02.02