알고리즘공부

프로그래머스 Lv0 - 더 크게 합치기

jonghyeon6084 2024. 3. 6. 11:28
728x90

1. 문제 설명

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

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

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

2. 제한사항

 - 1 <= a, b < 10000

3. 입출력 예

4. 내가 작성한 코드

class Solution {
    public int solution(int a, int b) {
        int answer = 0;
        
        String value1 = Integer.toString(a);
        String value2 = Integer.toString(b);
        
        String x = value1 + value2;
        String y = value2 + value1;
        
        int value3 = Integer.parseInt(x);
        int value4 = Integer.parseInt(y);
        
        if(value3 >= value4){
            answer = value3;
        } else {
            answer = value4;
        }
        return answer;
    }
}

여기서 알아야 할 것은 String 을 int 로 바꿔주는 Integer.parseInt() 와 int 를 String 으로 바꿔주는 Integer.toString() 이다.

하지만 내가 위에 작성한 코드는 너무 길며, java에서는 문자열 + 숫자를 하면 다 같이 문자열로 인정하는 것을 이용하면 코드의 양을 줄일 수 있다. 그리고 삼단논법을 통해서 if문도 더 줄여보았다.

5. 수정한 코드

class Solution {
    public int solution(int a, int b) {
        int answer = 0;
        
        String x = "" + a + b;
        String y = "" + b + a;
        
        int value1 = Integer.parseInt(x);
        int value2 = Integer.parseInt(y);
        
        answer = (value1 >= value2) ? value1 : value2;
        
        return answer;
    }
}