1 분 소요

문제 설명

프로그래머스 181939번 더 크게 합치기

연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다. 예를 들면 다음과 같습니다.

  • 12 ⊕ 3 = 123
  • 3 ⊕ 12 = 312

양의 정수 ab가 주어졌을 때, abba 중 더 큰 값을 return 하는 solution 함수를 완성해 주세요.
단, abba가 같다면 ab를 return 합니다.

제한 사항

  • 1 ≤ a, b < 10,000

입출력 예시

예시 1

a b result
9 91 991
89 8 898

입출력 예 설명 1

  • ab = 991 이고, ba = 919 입니다. 둘 중 더 큰 값은 991 이므로 991을 return 합니다.

입출력 예 설명 2

  • ab = 898 이고, ba = 889 입니다. 둘 중 더 큰 값은 898 이므로 898을 return 합니다.

코드 구현

Python

def solution(a, b):
    if int(f"{a}{b}") < int(f"{b}{a}"):
        return int(f"{b}{a}")
    else:
        return int(f"{a}{b}")

Java

class Solution {
    public int solution(int a, int b) {
        int answer = 0;

        if (Integer.parseInt((Integer.toString(a) + Integer.toString(b))) < Integer.parseInt((Integer.toString(b) + Integer.toString(a)))) {
            answer = Integer.parseInt(Integer.toString(b) + Integer.toString(a));
        } else {
            answer = Integer.parseInt(Integer.toString(a) + Integer.toString(b));
        }

        return answer;
    }
}

개선할 점 - Java

  • ab를 각각 String으로 변환하지 않고 ""를 붙여 간단하게 String 값으로 만들 수 있다.
  • Math 클래스의 max() 메서드를 이용하여 if문을 없앨 수 있다.
class Solution {
    public int solution(int a, int b) {
        return Math.max(Integer.parseInt(a + "" + b), Integer.parseInt(b + "" + a));
    }
}