47. C++ 백준 2908 번 상수
안녕하세요 코딩하는 덕구입니다!
숫자를 뒤집어서 비교하는 문제인 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 번 이었습니다! 감사합니다!