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 |