[프로그래머스/Java] Lv.0 더 크게 합치기

febCho·2024년 2월 29일
0

코딩테스트

목록 보기
14/253
post-thumbnail

문제

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

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

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

- 제한사항

  • 1 ≤ a, b < 10,000

풀이

풀이 후 다른 사람들의 정답을 보니 훨씬 간단한 게 많았다.
특히 if문 대신 삼항 연산자를 사용하거나 Math.max()를 사용해 더 큰 값을 반환하도록 하는 방법,
String.valueOf() 대신 빈 문자열을 넣어 a와 b를 더한 뒤 정수로 파씽해 변수를 최대한 덜 사용하는 방법들을 보며 취약한 부분에 대해 생각해볼 수 있었다.

class Solution {
    public int solution(int a, int b) {
        int answer = 0;
        String sab = String.valueOf(a) + String.valueOf(b);
        String sba = String.valueOf(b) + String.valueOf(a);
        
        int iab = Integer.parseInt(sab);
        int iba = Integer.parseInt(sba);
        
        if(iab >= iba){
            answer = iab;
        }else{
            answer = iba;
        }
        
        return answer;
    }
}

결과

결과

profile
Done is better than perfect.

0개의 댓글