IT/코딩테스트

[프로그래머스] 더 크게 합치기 - java

타미미 2025. 3. 13. 22:11

level 0

 

[문제]

https://school.programmers.co.kr/learn/courses/30/lessons/181939

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

[첫번째 풀이]

class Solution {
    public int solution(int a, int b) {
        String a1 = String.valueOf(a);
        String b1 = String.valueOf(b);
        String ab = a1.concat(b1);
        String ba = b1.concat(a1);
        
        return Math.max(Integer.valueOf(ab), Integer.valueOf(ba));
    }
}

 

문자열 a + b , b + a 를 만들기 위해 int 를 String 으로 변환 후, 합쳐주었다.

그리고 더 큰 숫자를 비교하기 위해 다시 숫자형으로 변환해준다.

 

Math.max를 사용하여 두개의 값 중 더 큰 값을 가져오도록 했다.

 

 

[두번째 풀이]

class Solution {
    public int solution(int a, int b) {
        int ab = Integer.parseInt(a+""+b);
        int ba = Integer.parseInt(b+""+a);
        
        return Math.max(ab, ba);
    }
}

 

Integer.parseInt(a + "" + b); 를 사용하여 a와 b를 문자열로 합치고 int로 변환해주는 방법도 있다.

위의 코드를 사용하면 훨씬 간단하게 작성할 수 있다.

 

이런 문제에서 주의할 점은, 숫자를 문자열로 합치는 것이므로 합쳤을 때 int 의 최대값을 넘는지 확인해야 한다.

int의 MAX_VALUE는 2,147,483,647 (약 21억) 이므로 이 값이 넘어가는지 유의해야 한다.

넘어가는 경우엔 long 타입을 사용하면 된다.

 

이번 문제에서는 a 와 b 의 최대값이 10,000 이므로 문자열 a + b 의 최대값은 1,000,010,000 이기 때문에 문제없다!

 

반응형