Java

[코딩 기초 문제] 더 크게 합치기

Song hyun 2025. 1. 3. 12:53
728x90
반응형

[코딩 기초 문제] 더 크게 합치기

 


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

 

 

⊕는 두 숫자를 붙여 또 다른 정수로 만드는 연산이다. 숫자 1과 숫자 34가 있다면 134라는 새로운 수를 만드는 식이다. 

해당 연산을 사용해 A+B, B+A 중 어느 것이 더 큰지를 비교하고 반환하는 문제이다.

 

해당 문제는 수학적인 접근이 아닌 문자->숫자로 변환하는 방식으로 접근하면 더욱 쉽게 풀 수 있다. (Integer.parseInt)

 

class Solution {
    public int solution(int a, int b) {
        int answer = 0;
        int result1 = Integer.parseInt(a+""+b);
        int result2 = Integer.parseInt(b+""+a);
        
        answer = result1>result2?result1:result2;
        return answer;
    }
}

 

(1) 숫자 a와 b 사이에 ""를 더하면 a+b 형태의 문자열이 된다. (ex: 1+""+23="123")

 

(2) 해당 문자열을 Integer.parseInt() 함수를 사용하면 그대로 정수로 형변환 할 수 있다. (ex: "123"->123)

 

(3) 삼항식을 통해 더욱 큰 쪽을 반환한다.

 

다른 분들의 풀이를 보며 공부했는데, Math.max를 통해 둘 중 큰 값을 바로 반환하는 방식도 있었다. 다음에는 이 방식을 참고해서 문제를 풀어봐야겠다... 

728x90
반응형