ailen22 2024. 1. 21. 23:30

[문제]

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

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

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

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

a b result
9 91 991
89 8 898

 

 

 

 

[답]

class Solution {
    public int solution(int a, int b) {
        int answer = Integer.parseInt(Integer.toString(a) + Integer.toString(b));
        int answer2 = Integer.parseInt(Integer.toString(b) + Integer.toString(a));

        if(answer > answer2) {
            return answer;
        } else {
            return answer2;
        }
    }
}

 

 

[다른사람 답]

class Solution {
    public int solution(int a, int b) {
        int ab = Integer.parseInt(Integer.toString(a) + Integer.toString(b));
        int ba = Integer.parseInt(Integer.toString(b) + Integer.toString(a));
        //삼항 연산자 사용
        return ab >= ba ? ab : ba;
    }
}

 

toString() : 해당 인스턴스 정보를 문자열로 반환

Integer.parseInt() : 문자열을 정수형으로 변환

 

 

 

 

 


parseInt와 valueOf의 차이점

Integer.parseInt() vs Integer.valueOf() 는 메소드 둘다 String 을 Integer 로 변경하기 위해 사용하는 메소드

 

parseInt(): 원시데이터인 int 타입을 반환

valueOf(): Integer 래퍼(wrapper)객체를 반환