- string으로 입력받아 뒤에 숫자부터 비교
#include<iostream>
#include<string>
int main() {
std::string a,b;
std::cin >> a >> b;
std::string big;
for (int i = 2; i >= 0; i--) {
if (a[i] > b[i]) {
big = a;
break;
}
else if (a[i] < b[i]){
big = b;
break;
}
}
std::cout << big[2] << big[1] << big[0];
}
ex) 734 893
a[i] | a[i] 거꾸로 | b[i] | b[i] 거꾸로 |
a[0] = 7 | a[2] = 4 | a[0] = 8 | a[2] = 3 |
a[1] = 3 | a[1] = 3 | a[1] = 9 | a[1] = 9 |
a[2] = 4 | a[0] = 7 | a[2] = 3 | a[0] = 8 |
a[i] > b[i] | 코드 수행 |
a[2] > b[2] => 4 > 3 => true | 백의 자리 수 a[2]가 더 크므로 big = a 이고, break;로 반복문 빠져나가기 |
a는 제대로 된 숫자이므로 거꾸로 출력하기 위해 big[2], big[1], big[0] 순서로 출력 |
ex) 221 231
a[i] | a[i] 거꾸로 | b[i] | b[i] 거꾸로 |
a[0] = 2 | a[2] = 1 | a[0] = 2 | a[2] = 1 |
a[1] = 2 | a[1] = 2 | a[1] = 3 | a[1] = 3 |
a[2] = 1 | a[0] = 2 | a[2] = 1 | a[0] = 2 |
a[i] > b[i] | 코드 수행 |
a[2] > b[2] => 1 > 1 => false | 백의 자리 수 a[2]와 b[2]가 같으므로 십의 자리 수를 비교해야함 |
a[2] > b[2] => 1 < 1 => false | |
a[1] > b[1] => 2 > 3 => false a[2] > b[2] => 2 < 3 => true |
십의 자리 수 b[1]이 더 크므로 big = b 이고, break;로 반복문 빠져나가기 |
b는 제대로 된 숫자이므로 거꾸로 출력하기 위해 big[2], big[1], big[0] 순서로 출력 |
'코딩테스트 > programming_C++' 카테고리의 다른 글
baekjoon #2941_크로아티아 알파벳_c++ (0) | 2021.10.26 |
---|---|
baekjoon #5622_다이얼_c++ (0) | 2021.10.26 |
baekjoon #1152_단어의 개수_c++ (0) | 2021.10.26 |
baekjoon #1157_단어 공부_c++ (0) | 2021.10.26 |
baekjoon #10809_알파벳 찾기_c++ (0) | 2021.10.25 |