문제
상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다.
상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 734와 893을 칠판에 적었다면, 상수는 이 수를 437과 398로 읽는다. 따라서, 상수는 두 수중 큰 수인 437을 큰 수라고 말할 것이다.
두 수가 주어졌을 때, 상수의 대답을 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 상근이가 칠판에 적은 두 수 A와 B가 주어진다. 두 수는 같지 않은 세 자리 수이며, 0이 포함되어 있지 않다.
출력
첫째 줄에 상수의 대답을 출력한다.
예제 입력 1
734 893
예제 출력 1
437
예제 입력 2
221 231
예제 출력 2
132
예제 입력 3
839 237
예제 출력 3
938
#문제 풀이 방법
1.두 개의 세자리 숫자가 입력된다.
2. 각각의 숫자를 거꾸로 읽어서 큰 숫자를 출력한다.
3. 각각의 자릿수를 거꾸로 만들어 새로운 숫자를 만든다.
→3-1. 숫자로 입력받아서 %와 /를 이용하여 거꾸로 만들어준다.
→3-2. 문자열로 입력받아서 문자열을 뒤집고 다시 숫자로 만들어 비교한다.
4. 새로운 숫자들을 비교하여 큰 숫자를 출력하면 된다.
#C/C++
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int a,b;
cin>>a>>b;
int c=(a%10)*100+((a/10)%10)*10+(a/100);
int d=(b%10)*100+((b/10)%10)*10+(b/100);
cout<<(c>d?c:d);//삼항연산자 사용!
return 0;
}
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
string a,b;
cin>>a>>b;
reverse(a.begin(),a.end());//algorithm헤더 내의 reverse 함수를 이용하여 문자열 뒤집기
reverse(b.begin(),b.end());//문자열 뒤집기
int c=stoi(a);
int d=stoi(b);
cout<<(c>d?c:d);
return 0;
}
#Python
A,B=map(int,input().split())
C=(A%10)*100+((A//10)%10)*10+(A//100)
D=(B%10)*100+((B//10)%10)*10+(B//100)
print(C if C>D else D)#삼항 연산자!
A,B=input().split()
C=A[2::-1]//문자열 뒤집기
D=B[2::-1]//문자열 뒤집기
print(int(C) if int(C)>int(D) else int(D))//문자열을 숫자로 변환해 비교 with 삼항연산자
반응형
'PS > 백준' 카테고리의 다른 글
[백준/Baekjoon]<2920번> 음계 [C/C++/Python][Class 1] (0) | 2022.09.12 |
---|---|
[백준/Baekjoon]<1152번> 단어의 개수 [C/C++/Python][Class 1] (2) | 2022.09.12 |
[백준/Baekjoon]<2675번> 문자열 반복 [C/C++/Python][Class 1] (0) | 2022.08.02 |
[백준/Baekjoon]<2577번> 숫자의 개수 [C/C++/Python][Class 1] (0) | 2022.08.01 |
[백준/Baekjoon]<10818번> 최소, 최대 [C/C++/Python][Class 1] (0) | 2022.07.29 |