PS/백준

[백준/Baekjoon]<2908번> 상수 [C/C++/Python][Class 1]

DigIT_JHB 2022. 8. 3. 17:24

백준 2908번 상수
백준 2908번 상수

문제

상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다.

상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 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 삼항연산자
반응형