한 줄 요약 :
문자열의 순서를 뒤집어 ascii 코드를 이용해 정수로 표현한다.
풀이 :
1. 두 수 a,b를 문자열 char로 받는다.
이 때 세자리 수이므로 [4]칸짜리 문자열을 만든다.
char a[4]; char b[4]; cin >> a >> b;
2. a,b의 순서를 각각 뒤집어준다.
임시변수 change를 만들고 처음과 끝의 문자를 서로 바꿔준다.
for (int i = 0; i < 3; i++) { int change = a[2]; a[2] = a[0]; a[0] = change; // change = b[2]; b[2] = b[0]; b[0] = change;
3. 뒤집힌 순서의 문자열을 정수로 담아낸다.
char를 int로 담을 경우 문자열 숫자는 ascii 코드와 48이 차이난다.
각 문자에서 48을 빼준 뒤 자리수만큼 할당된 0을 붙여준다.int aReverse = (a[0] - 48) * 100 + (a[1] - 48) * 10 + (a[2] - 48); int bReverse = (b[0] - 48) * 100 + (b[1] - 48) * 10 + (b[2] - 48);
4. 정수로 담아낸 숫자들을 비교하여 큰 수를 출력한다.
if (aReverse > bReverse) cout << aReverse; else cout << bReverse;
<C++ code>
#include <iostream>
using namespace std;
int main()
{
char a[4];
char b[4];
cin >> a >> b;
for (int i = 0; i < 3; i++)
{
int change = a[2];
a[2] = a[0];
a[0] = change;
change = b[2];
b[2] = b[0];
b[0] = change;
}
int aReverse = (a[0] - 48) * 100 + (a[1] - 48) * 10 + (a[2] - 48);
int bReverse = (b[0] - 48) * 100 + (b[1] - 48) * 10 + (b[2] - 48);
if (aReverse > bReverse)
cout << aReverse;
else
cout << bReverse;
}