본문 바로가기

Chapter01/고딩데스드

[고딩데스드] 프로그래머스 코딩 기초 트레이닝 > 더 크게 합치기

코딩테스트 연습 > 코딩 기초 트레이닝 > 더 크게 합치기

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

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


입출력 예
a b result
9 91 991
89 8 898


입출력 예 설명
입출력 예 #1

a ⊕ b = 991 이고, b ⊕ a = 919 입니다. 둘 중 더 큰 값은 991 이므로 991을 return 합니다.
입출력 예 #2

a ⊕ b = 898 이고, b ⊕ a = 889 입니다. 둘 중 더 큰 값은 898 이므로 898을 return 합니다.

 

 

 

하긴 했는데 너무 마음에 안든다,,

class Solution {
       public int solution(int a , int b) {
        
        int answer = 0;
        
        String aa = String.valueOf(a);
        String bb = String.valueOf(b);
            
        String ab = aa.concat(bb);
        String ba = bb.concat(aa);
           
        a = Integer.valueOf(ab);   
        b = Integer.valueOf(ba);
            
        if(a-b > 0){
            answer = a;
        }else{
            answer = b;
        }
        
        return answer;
    }
}

 

 

왜 3점이나 줄까?..

 

 

GPT한테 효율적으로 바꿔달라고했다..

class Solution {
    public int solution(int a, int b) {
        String ab = Integer.toString(a) + Integer.toString(b);
        String ba = Integer.toString(b) + Integer.toString(a);

        int resultAB = Integer.parseInt(ab);
        int resultBA = Integer.parseInt(ba);

        return Math.max(resultAB, resultBA);
    }
}

 

 

;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,멋진녀석 

 

 

 

 

 

 

class Solution {
       public int solution(int a , int b) {
        
        String aa = String.valueOf(a);
        String bb = String.valueOf(b);
            
        String ab = aa.concat(bb);
        String ba = bb.concat(aa);
           
        int resultAB = Integer.valueOf(ab);   
        int resultBA = Integer.valueOf(ba);
            

        return Math.max(resultAB, resultBA);
    }
}

이렇게 바꿨다ㅠ

어디선가 '+' 를 쓰는건 효율적이지 못하다고 봐서!

 

 

근데 다른사람들 풀이랑 댓글 보니까

java에서는 형변환할때   String.valueOf() 같은거 안 쓰고 그냥 숫자+""  이렇게 많이 쓴다고한다,,

 

 

Integer.parseInt(""+a+b);

이런식으로,,