배송 거리가 유효한 숫자인지 확인하기

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

js-basic easy number-finite-check-methods 함수명: checkFiniteDeliveryDistance 제한 시간: 200ms

배송 거리 값이 실제로 계산 가능한 숫자인지 확인하는 문제입니다.

오늘의 메서드

  • Number.isFinite()

메서드 설명

  • Number.isFinite()는 전달받은 값이 숫자 타입이면서 유한한 값인지 확인하는 메서드입니다.
  • 결과는 항상 true 또는 false입니다.
  • 이 문제에서는 배송 거리 값이 123.5처럼 실제 숫자일 때만 true를 반환하고, "15"null처럼 숫자 타입이 아닌 값은 false로 처리합니다.

기본 문법

Number.isFinite(value)
  • value: 유한한 숫자인지 확인할 값입니다.

사용 예시

Number.isFinite(12);    // true
Number.isFinite(3.5);   // true
Number.isFinite('15');  // false
Number.isFinite(null);  // false

주의할 점

  • 숫자처럼 보이는 문자열은 숫자 타입이 아닙니다. "15"는 문자열이므로 false입니다.
  • null도 숫자로 자동 변환하지 않으므로 false입니다.
  • Number.isFinite()는 값을 숫자로 바꾸지 않고 그대로 검사합니다.
  • 정수뿐 아니라 3.5처럼 소수여도 계산 가능한 유한한 숫자라면 true입니다.

제한사항

  • distance는 숫자, 문자열, 또는 null입니다.
  • 숫자로 들어오는 값은 0 이상 10000 이하입니다.
  • 문자열로 들어오는 값은 숫자처럼 보일 수 있지만 그대로 문자열로 취급합니다.
  • 반환값은 distance가 실제 숫자 타입이면서 유한한 값이면 true, 아니면 false입니다.

예시

  • 입력: 12 -> 출력: true
  • 입력: 3.5 -> 출력: true
  • 입력: "15" -> 출력: false
  • 입력: null -> 출력: false

힌트

  • 값이 숫자로 계산 가능한 상태인지 한 번에 확인하는 메서드를 사용해 보세요.
  • Number.isFinite(distance)의 결과를 그대로 반환하면 됩니다.
  • 문자열 "15"를 숫자로 바꾸지 않아야 합니다.

해설

이 문제는 값의 모양이 아니라 실제 JavaScript 값의 타입과 계산 가능 여부를 확인하는 연습입니다.

Number.isFinite()는 값이 숫자 타입인지 확인한 뒤, 그 값이 유한한 숫자인지 검사합니다. 그래서 123.5true지만, "15"는 문자열이므로 false입니다. null 역시 숫자가 아니기 때문에 false입니다.

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

  1. checkFiniteDeliveryDistance(distance)로 값을 받습니다.
  2. Number.isFinite(distance)를 호출합니다.
  3. 그 결과를 그대로 반환합니다.

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

function checkFiniteDeliveryDistance(distance) {
  return Number.isFinite(distance);
}

이 풀이가 적합한 이유는 직접 타입 검사와 특수 숫자 검사를 나누어 작성하지 않아도, Number.isFinite() 하나로 “계산 가능한 실제 숫자”라는 의도를 분명하게 표현할 수 있기 때문입니다. 특히 숫자처럼 보이는 문자열을 자동 변환하지 않는다는 점이 입력 검증 문제에서 중요합니다.

코드 작성

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

JavaScript 에디터 로딩 중...

커스텀 테스트

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

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

실행 결과

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

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

댓글

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