문제 설명

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

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

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

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


제한사항

  • 1 ≤ ab < 10,000

입출력 예

abresult
991991
898898

입출력 예 설명

입출력 예 #1

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

입출력 예 #2

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

✍ SOLUTION1

const solution = (a, b) => {
    const strA = String(a);
    const strB = String(b);
    
    return +(strA + strB) > +(strB + strA) ? +(strA + strB) : +(strB + strA);
}

/*
처음 작성한 코드이다.

1. strA와 strB의 변수는 각 a, b를 string으로 변환해준 값으로 초기화해준다.
2. 삼항 연산자를 사용하여 더 큰값을 리턴해준다.
*/

✍ SOLUTION2

const solution = (a, b) => Math.max(Number(`${a}${b}`), Number(`${b}${a}`));

/*
문자열 템플릿을 사용하여 조금 더 간단하게 작성해보았다.

1. Math.max를 사용하해서 문자열을 더한값중 더 큰값을 리턴해준다.
*/

✍ SOLUTION3

const solution = (a, b) => {
    let num1 = parseInt(""+a+b);
    let num2 = parseInt(""+b+a);
    
    return num1 >= num2 ? num1 : num2;
}

/*
1. parseInt를 사용하여 num1과 num2의 변수에 a, b를 string으로 만들어서 더한 값으로 초기화 해준다.
2. 삼항연산자를 사용해서 num1와 num2의 크기를 비교하여 더 큰값을 리턴해준다.
*/

출처 : 프로그래머스 스쿨 | 코딩테스트 연습

0개의 댓글