게임 개발 로그

3일차 / 더 크게 합치기 / C++ / 기초 본문

코테

3일차 / 더 크게 합치기 / C++ / 기초

03:00am 2023. 11. 2. 13:10

더 크게 합치기

문제 설명

  • 연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다. 예를 들면 다음과 같습니다.
    • 12 ⊕ 3 = 123
    • 3 ⊕ 12 = 312
  • 양의 정수 a와 b가 주어졌을 때, a ⊕ b와 b ⊕ a 중 더 큰 값을 return 하는 solution 함수를 완성해 주세요.
  • 단, a ⊕ b와 b ⊕ a가 같다면 a ⊕ b를 return 합니다.


제한사항

  • 1 ≤ a, b < 10,000

 

입출력 예

a b result
9 91 991
89 9 898

 

입출력 예 설명

입출력 예 #1

a ⊕ b = 991 이고, b ⊕ a = 919 입니다. 둘 중 더 큰 값은 991 이므로 991을 return 합니다.

 

입출력 예 #2

a ⊕ b = 898 이고, b ⊕ a = 889 입니다. 둘 중 더 큰 값은 898 이므로 898을 return 합니다.

 

 


 

 

내 코드

#include <string>
#include <vector>

using namespace std;

int solution(int a, int b) {
    int answer = 0;
    string sa = to_string(a);
    string sb = to_string(b);
    
    if ( sa + sb > sb + sa) answer = stoi(sa + sb);
    else answer = stoi(sb + sa);
    return answer;
}
  • int 를 string 으로 변환하는 함수: to_string()
  • string 을 int 로 변환하는 함수: stoi()

 

 

다른 사람 풀이

#include <string>
#include <vector>

using namespace std;

int solution(int a, int b) {
    return max(stoi(to_string(a)+to_string(b)),stoi(to_string(b)+to_string(a)));
}
  • 아주 간단한 방법
  • max 만 더 활용해도 코드를 훨씬 간결하게 줄일 수 있다