본문 바로가기
코딩테스트/programming_C++

baekjoon #2908_상수_c++

by prometedor 2021. 10. 26.
  • 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] 순서로 출력