본문 바로가기
코딩테스트

문자열 숫자 연산에는 ""을 활용하자

by woorix2 2025. 5. 19.

문제: 

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

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

단, a ⊕ b와 b ⊕ a가 같다면 a ⊕ b를 return 합니다.

 

public int solution(int a, int b) {        
        String ab = String.valueOf(a) + String.valueOf(b);
        String ba = String.valueOf(b) + String.valueOf(a);
        
        int abInt = Integer.parseInt(ab);
        int baInt = Integer.parseInt(ba);        
        
        return  Math.max(abInt, baInt);
    }

 

형변환만 하면 되는 문제 이긴 하는데, 나는 두 번이나 형변환을 해서 코드가 길다.

public int solution(int a, int b) {
        return Math.max(Integer.parseInt(a + "" + b), Integer.parseInt(b + "" + a));
    }

 

다른 문제 풀이를 보니 이렇게 한줄로 처리한 사람이 있었다.

문자열 + 숫자 = 문자열인것을 당연히 알고는 있었지만, ""로 처리할 생각은 꿈에도 하지 못했다.

이렇게 하니 형변환을 한번만 해도 되고 깔끔하게 한 줄로 처리했다.

본받아야 할 코드이다.