온도 차이를 양수로 바꾸기

자바스크립트 코딩테스트 문제로 number-math-methods 주제를 연습해보세요. 난이도는 easy이며, 브라우저에서 바로 JavaScript로 풀이를 실행할 수 있습니다.

js-basic easy number-math-methods 함수명: convertTemperatureGapToPositive 제한 시간: 200ms

현재 온도와 목표 온도의 차이를 항상 양수 값으로 반환하는 문제입니다.

오늘의 메서드

  • Math.abs()

메서드 설명

  • Math.abs()는 숫자의 절댓값을 반환하는 메서드입니다.
  • 양수는 그대로 반환하고, 음수는 부호를 없애 양수로 바꿉니다.
  • 이 문제에서는 두 온도의 차이가 음수로 계산되더라도 실제 거리처럼 0 이상의 값으로 바꾸는 데 사용합니다.

기본 문법

Math.abs(number)
  • number: 절댓값으로 바꾸고 싶은 숫자입니다.

사용 예시

Math.abs(7);   // 7
Math.abs(-7);  // 7
Math.abs(0);   // 0

주의할 점

  • Math.abs()는 원래 숫자를 바꾸는 것이 아니라 절댓값 결과를 새로 반환합니다.
  • 두 값의 차이를 구한 뒤 Math.abs()로 감싸야 방향과 상관없는 차이를 얻을 수 있습니다.
  • Math.abs(current - target)Math.abs(target - current)는 같은 결과를 만듭니다.
  • 숫자가 아닌 값을 넣으면 의도하지 않은 결과가 나올 수 있으므로, 이 문제에서는 입력을 숫자로 제한합니다.

제한사항

  • currenttarget은 정수입니다.
  • -100 <= current <= 100
  • -100 <= target <= 100
  • 반환값은 두 온도 차이의 절댓값입니다.
  • 두 온도가 같으면 0을 반환합니다.

예시

  • 입력: current = 18, target = 25 -> 출력: 7
  • 입력: current = 30, target = 12 -> 출력: 18
  • 입력: current = -3, target = 4 -> 출력: 7
  • 입력: current = 10, target = 10 -> 출력: 0

힌트

  • 먼저 current - target 또는 target - current로 두 온도의 차이를 구해 보세요.
  • 차이가 음수가 될 수 있으므로 절댓값으로 바꾸면 됩니다.
  • Math.abs(current - target)의 결과를 그대로 반환할 수 있습니다.

해설

이 문제는 두 숫자 사이의 차이를 방향이 없는 거리로 바꾸는 연습입니다.

예를 들어 현재 온도가 18도이고 목표 온도가 25도라면 18 - 25-7입니다. 하지만 온도 차이를 말할 때는 보통 -7도 차이가 아니라 7도 차이라고 표현합니다. 이때 Math.abs()를 사용하면 음수 부호를 없애 0 이상의 값으로 만들 수 있습니다.

풀이 흐름은 다음과 같습니다.

  1. current - target으로 두 온도의 차이를 구합니다.
  2. 그 값을 Math.abs()에 넣습니다.
  3. 절댓값 결과를 반환합니다.

정답 코드는 다음처럼 작성할 수 있습니다.

function convertTemperatureGapToPositive(current, target) {
  return Math.abs(current - target);
}

이 풀이가 적합한 이유는 직접 if문으로 음수인지 확인해 부호를 바꾸지 않아도, Math.abs() 하나로 “차이를 양수 거리로 바꾼다”는 의도를 분명하게 표현할 수 있기 때문입니다.

코드 작성

starter code를 바탕으로 함수를 완성한 뒤 예제 테스트를 실행해보세요.

JavaScript 에디터 로딩 중...

커스텀 테스트

함수 인자를 JSON 배열 형태로 입력하세요. 예: [3, 5], [[1, 2, 3]]

아직 실행하지 않았습니다.

실행 결과

아직 실행하지 않았습니다.

예제 테스트를 실행하면 여기에서 결과를 확인할 수 있습니다.

댓글

문제 풀이 아이디어, 질문, 반례를 자유롭게 나눠보세요.