연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다.
예를 들면 다음과 같습니다.
양의 정수 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 합니다.
function solution(a, b) {
const num1 = Number(`${a}${b}`)
const num2 = Number(`${b}${a}`)
if(num1 < num2){
return num2
}else if(num1 === num2){
return num1
}else{
return num1
}
}
function solution(a, b) {
return Math.max(Number(`${a}${b}`), Number(`${b}${a}`))
}
Math.max()
메서드를 사용해 최대 값을 구하는 코드로 작성하셨다.
9줄 나온 코드를 1줄로 풀어서 가지고 왔다.
NaN
로 반환)-Infinity
기본 문법
Math.max(값0, 값1, ... , 값N)
Math.max(1, 3, 2)//3 Math.max(1, 3, 2, 5, 8)//8 Math.max(-1, -5, -3)//-1
Infinity?
- 전역 속성은 무한대를 나타내는 숫자 값
- 전역 객체의 속성(전역 범위의 변수)
console.log(Infinity); /* Infinity */ console.log(Infinity + 1); /* Infinity */ console.log(Math.pow(10,1000)); /* Infinity */ console.log(Math.log(0)); /* -Infinity */ console.log(1 / Infinity); /* 0 */ console.log(1 / 0); /* Infinity */
메서드를 많이 알고 있으면 있을 수록 알고리즘을 좀 더 간단하게
코드를 줄여서 풀 수 있다.
까먹을 때 마다 찾아서 사용할 수 있도록 기록하자.
참고
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Math/max
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Infinity