문제링크 https://www.acmicpc.net/problem/2908
문제 이해
이번 문제는 세 자릿수 두 개를 입력받고, 이들의 숫자를 뒤집어서 크기를 비교하는 문제입니다. 예를 들어, 734와 893을 입력받았을 때, 각각을 뒤집은 수는 437과 398입니다. 이 중 더 큰 수는 437이므로, 이를 출력하면 됩니다.
문제 해결 방법
이 문제를 해결하기 위해서는 입력받은 숫자를 뒤집어서 크기를 비교하면 됩니다. 이때, 숫자를 뒤집는 방법은 다음과 같습니다.
1. 먼저, 숫자를 입력받습니다.
2. 입력받은 숫자를 10으로 나눈 나머지를 구합니다. 이 값을 새로운 숫자에 더합니다.
3. 입력받은 숫자를 10으로 나누어 몫을 구합니다.
4. 몫이 0이 될 때까지 2~3번 과정을 반복합니다.
예제1번을 보면, 734라는 숫자를 뒤집는다면 다음과 같은 과정을 거칩니다.
1. 입력받은 숫자: 734
2. 734 % 10 = 4. 새로운 숫자: 4
3. 734 / 10 = 73
4. 73 % 10 = 3. 새로운 숫자: 43
5. 73 / 10 = 7
6. 7 % 10 = 7. 새로운 숫자: 437
7. 7 / 10 = 0. 종료.
이렇게 뒤집은 숫자를 이용하여 크기를 비교하면 됩니다.
문제 해결 과정
이제 실제로 C언어로 문제를 해결해 보겠습니다.
#include <stdio.h>
int main() {
int A, B;
scanf("%d %d", &A, &B); // 두 수를 입력받음
// A를 뒤집음
int newA = 0;
while(A > 0) {
newA = newA * 10 + (A % 10);
A /= 10;
}
// B를 뒤집음
int newB = 0;
while(B > 0) {
newB = newB * 10 + (B % 10);
B /= 10;
}
// 두 수 중 큰 수를 출력함
if(newA > newB) printf("%d", newA);
else printf("%d", newB);
return 0;
}
우선, `scanf()` 함수를 이용하여 두 수를 입력받습니다. 그리고 첫 번째 수 `A`와 두 번째 수 `B`를 입력받습니다.
이어서, while 문을 이용하여 A와 B를 각각 뒤집은 새로운 수 newA와 newB를 구합니다.
그리고 마지막으로, if 문을 이용하여 두 수 중 큰 수를 출력합니다.
2908번: 상수
상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두
www.acmicpc.net
'백준 문제 풀이 > c언어' 카테고리의 다른 글
백준 3052 C언어 문제 풀이 - 나머지 (0) | 2024.01.28 |
---|---|
백준 10171 C언어 문제 풀이 - 고양이 (0) | 2024.01.28 |
백준 10871 C언어 문제 풀이 - X보다 작은 수 (0) | 2024.01.28 |
백준 2577 C언어 문제 풀이 - 숫자의 개수 (0) | 2024.01.28 |
백준 1259 C언어 문제 풀이 - 팰린드롬수 (0) | 2024.01.28 |