
연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다. 예를 들면 다음과 같습니다.
양의 정수 a와 b가 주어졌을 때, a ⊕ b와 2 * a * b 중 더 큰 값을 return하는 solution 함수를 완성해 주세요.
단, a ⊕ b와 2 * a * b가 같으면 a ⊕ b를 return 합니다.
a, b < 10,000| a | b | result |
|---|---|---|
| 2 | 91 | 364 |
| 91 | 2 | 912 |
입출력 예 #1
a ⊕ b = 291 이고, 2 * a * b = 364 입니다. 둘 중 더 큰 값은 364 이므로 364를 return 합니다.입출력 예 #2
a ⊕ b = 912 이고, 2 * a * b = 364 입니다. 둘 중 더 큰 값은 912 이므로 912를 return 합니다.function solution(a, b) {
const ab = Number(`${a}${b}`); // a ⊕ b 계산
const product = 2 * a * b; // 2 * a * b 계산
return ab >= product ? ab : product; // 더 큰 값 반환, 같으면 ab 반환
}
a ⊕ b 계산\``)을 사용하여 a와 b를 문자열로 변환한 뒤 이어붙입니다. 이어붙인 문자열을 Number()를 사용해 숫자로 변환합니다. 예: a = 2, b = 91→ ```${a}${b}``` →"291"→Number("291")→291`.2 * a * b 계산2 * a * b를 계산합니다.a = 2, b = 91 → 2 * 2 * 91 = 364.ab >= product 조건을 확인합니다.ab 반환.product 반환.function solution(a, b) {
return Math.max(Number(`${a}${b}`), 2 * a * b); // 두 값 중 더 큰 값을 반환
}
Math.max를 사용해 최대값 계산Math.max()를 사용하여 두 값을 비교하고 더 큰 값을 반환합니다.${a}${b} → 문자열로 변환 후 숫자로 변환.a = 2, b = 91 → "291" → Number("291") → 291.2 * a * b.a = 2, b = 91 → 2 * 2 * 91 = 364.Math.max()는 두 값 중 더 큰 값을 자동으로 반환합니다.Math.max(291, 364) → 364.| 방식 | 특징 | 장점 | 단점 |
|---|---|---|---|
| 첫 번째 방식 | 조건문(if) 또는 삼항 연산자 사용 | 비교 과정을 명시적으로 보여줌 | 코드가 약간 더 길어짐 |
| 두 번째 방식 | Math.max() 사용 | 간결하고 직관적 | 비교 과정을 세부적으로 보여주지 않음 |
a = 2, b = 91a ⊕ b = 291, 2 * a * b = 364291 < 364 → 반환: 364Math.max(291, 364)364