프로그래머스/Lv. 0(코딩 기초 트레이닝)

[프로그래머스 코딩테스트] 더 크게 합치기(Java)

Sigfriede 2023. 4. 27. 12:56

  문제 설명

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

  • 12 + 3 = 123
  • 3 + 12 = 312

  양의 정수 a와 b가 주어졌을 때, a + b와 b + a 중 더 큰 값을 return 하는 solution 함수를 완성해 주세요.

 

  제한사항

  • 1 <= a, b < 10,000

 

  입출력 예

a b result
9 91 991
89 8 898
class Solution {
    public int solution(int a, int b) {
        String s1 = Integer.toString(a);
        String s2 = Integer.toString(b);
        String s11 = s1 + s2;
        String s22 = s2 + s1;
        int answer = Math.max(Integer.parseInt(s11), Integer.parseInt(s22));
        return answer;
    }
}

  각 정수형을 Integer.toString을 통해 문자열로 만들어줍니다. 문자열끼리의 덧셈은 문제에서 제시한 것처럼, 앞뒤로 다른 문자열을 붙이기 수월하므로 형변환을 시도했습니다. 이렇게 변환한 문자열끼리 앞뒤로 바꾸어 붙여봅니다. Math 클래스의 max 메소드로 앞뒤로 붙인 문자열 중 더 큰 수를 골랐습니다. 이 과정에서, 변수는 현재 문자열 형태이므로 올바른 비교를 할 수 없습니다. 따라서 Integer.parseInt로 문자열을 다시 정수형으로 변경하여 비교했습니다.