https://www.acmicpc.net/problem/2908
문제
상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다.
상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 734와 893을 칠판에 적었다면, 상수는 이 수를 437과 398로 읽는다. 따라서, 상수는 두 수중 큰 수인 437을 큰 수라고 말할 것이다.
두 수가 주어졌을 때, 상수의 대답을 출력하는 프로그램을 작성하시오.
풀이
idea
1) 입력되는 것이 두 개로 고정되어있음. -> scanf 두개
2) 자리수 -> 몫과 나머지로 구한 다음 곱을 해줘서 뒤집은 숫자를 만들기
3) 세자리수로 고정되어있음 -> 각자리수 3개씩 총 6개의 변수가 필요
4) 0 이 포함되어있지 않음 -> 300 같은 예외를 고려하지 않아도 됌
5) 두 수는 같지 않음 -> 같은 수일 때의 경우를 예외처리 하지 않아도 됌
풀이순서
1) 세자리 수 두 개 입력받기
//1) 세자리 수 두 개 입력받기
scanf("%d %d", &A, &B);
2)숫자 뒤집기
//2)숫자 대입하기
A_100 = A / 100;
A_10 = (A / 10) % 10;
A_1 = A % 10;
B_100 = B / 100;
B_10 = (B / 10) % 10;
B_1 = B % 10;
//2)숫자 뒤집기
A = (A_1 * 100) + (A_10 * 10) + (A_100 * 1);
B = (B_1 * 100) + (B_10 * 10) + (B_100 * 1);
몫 과 나머지를 이용하여 각 자리수에 넣어주고 반대로 넣어줌
3)숫자 비교하기
//3)숫자 비교하기
if (A > B)
{
printf("%d", A);
}
else
{
printf("%d", B);
}
같다라는 조건 등이 없기 때문에
A>B 하고 바로 else를 씀
'프로그래밍 언어 > C' 카테고리의 다른 글
C언어 백준 2941 크로아티아 알파벳 풀이과정 (0) | 2021.09.11 |
---|---|
C언어 백준 5622 다이얼 풀이과정 (0) | 2021.09.11 |
C언어 백준 1152번 단어의 개수 해설 {런타임 에러(Segfault) } (0) | 2021.09.10 |
C언어 백준 1157번 단어공부 해설 (4) | 2021.09.09 |
C언어 백준 2675번 문자열 반복 해설 (scanf 오류 해결) (0) | 2021.09.08 |