알고리즘 문제 풀이

47. C++ 백준 2908 번 상수

코딩하는 덕구 🐶 2022. 1. 26. 12:33
728x90
반응형

안녕하세요 코딩하는 덕구입니다! 

숫자를 뒤집어서 비교하는 문제인 C++ 백준 2908 번 입니다!

문제

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

상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 734와 893을 칠판에 적었다면, 상수는 이 수를 437과 398로 읽는다. 따라서, 상수는 두 수중 큰 수인 437을 큰 수라고 말할 것이다.

두 수가 주어졌을 때, 상수의 대답을 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 상근이가 칠판에 적은 두 수 A와 B가 주어진다. 두 수는 같지 않은 세 자리 수이며, 0이 포함되어 있지 않다.

출력

첫째 줄에 상수의 대답을 출력한다.

https://www.acmicpc.net/problem/2908

 

2908번: 상수

상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두

www.acmicpc.net

 

#include <iostream>
#include <string>
using namespace std;
int main(){
    string num1, num2;     char tmp;

    cin>>num1>>num2;
    
    tmp = num1[2];
    num1[2] = num1[0];
    num1[0] = tmp;

    tmp = num2[2];
    num2[2] = num2[0];
    num2[0] = tmp;

    if(num1 > num2) cout<<num1;
    
    else cout<<num2;

    return 0;
}

string 에서 한 글자씩 접근하는 법만 알면 간단합니다!

글자의 위치를 바꾸기 위해 임시로 저장할 공간 tmp를 만들고

3자리수 이므로 num1의 [0]번과 [2]번 , num2 의 [0]번과 [2]번을 바꿔주면 되겠죠!

다만 num[0] = num[2] , num[2] = num[0] 이렇게 하면 되는게 아니냐 하실수도 있는데

이렇게 코드를 작성하면 num[0] 값에 num[2] 값이 복사가 된 후에 num[2] 에 num[2]를 다시

입력하는 꼴이 되므로 임시로 보관할 변수 tmp를 이용한것 입니다!

 

 C++ 백준 2908 번 이었습니다! 감사합니다!

728x90
반응형