[JavaScript] Lv0 - 두 수의 연산값 비교하기

Moon·2024년 11월 21일
0
post-thumbnail

두 수의 연산값 비교하기

문제 설명

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

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

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

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


제한사항

  • 1 ≤ ab < 10,000

입출력 예

abresult
291364
912912

입출력 예 설명

입출력 예 #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 반환
}

설명

  1. a ⊕ b 계산
    • 템플릿 리터럴(\``)을 사용하여 a b를 문자열로 변환한 뒤 이어붙입니다. 이어붙인 문자열을 Number()를 사용해 숫자로 변환합니다. 예: a = 2, b = 91→ ```${a}${b}``` →"291"Number("291")291`.
  2. 2 * a * b 계산
    • 2 * a * b를 계산합니다.
      예: a = 2, b = 912 * 2 * 91 = 364.
  3. 더 큰 값 반환
    • ab >= product 조건을 확인합니다.
      • 조건이 참이면 ab 반환.
      • 조건이 거짓이면 product 반환.

두 번째 방식

function solution(a, b) {
    return Math.max(Number(`${a}${b}`), 2 * a * b); // 두 값 중 더 큰 값을 반환
}

설명

  1. Math.max를 사용해 최대값 계산
    • Math.max()를 사용하여 두 값을 비교하고 더 큰 값을 반환합니다.
    • 첫 번째 값: ${a}${b} → 문자열로 변환 후 숫자로 변환.
      • 예: a = 2, b = 91"291"Number("291")291.
    • 두 번째 값: 2 * a * b.
      • 예: a = 2, b = 912 * 2 * 91 = 364.
  2. 더 큰 값 반환
    • Math.max()는 두 값 중 더 큰 값을 자동으로 반환합니다.
    • 예: Math.max(291, 364)364.

두 방식 비교

방식특징장점단점
첫 번째 방식조건문(if) 또는 삼항 연산자 사용비교 과정을 명시적으로 보여줌코드가 약간 더 길어짐
두 번째 방식Math.max() 사용간결하고 직관적비교 과정을 세부적으로 보여주지 않음

실행 예시

입력: a = 2, b = 91

  1. 첫 번째 방식
    • a ⊕ b = 291, 2 * a * b = 364
    • 결과: 291 < 364 → 반환: 364
  2. 두 번째 방식
    • Math.max(291, 364)
    • 결과: 반환: 364
profile
MOON.DEVLOG

0개의 댓글