배송 라벨 체크 숫자 확인하기

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

today easy checksum-validation 함수명: checkDeliveryLabelDigit 제한 시간: 200ms

배송 라벨의 마지막 체크 숫자가 올바른지 확인하세요.

문제 설명

숫자로만 이루어진 배송 라벨 문자열 label이 주어집니다.

라벨의 마지막 숫자는 체크 숫자입니다. 마지막 숫자를 제외한 모든 숫자의 합에서 일의 자리를 구했을 때, 그 값이 체크 숫자와 같으면 올바른 라벨입니다.

배송 라벨이 올바르면 true, 아니면 false를 반환하는 checkDeliveryLabelDigit 함수를 작성하세요.

예를 들어 "3148"에서 앞자리 숫자의 합은 3 + 1 + 4 = 8이고, 체크 숫자도 8이므로 올바른 라벨입니다.

제한사항

  • label은 숫자로만 이루어진 문자열입니다.
  • 2 <= label.length <= 1,000
  • 마지막 문자는 체크 숫자이며 앞자리 숫자의 합에는 포함하지 않습니다.
  • 앞자리 숫자의 합에서 일의 자리만 체크 숫자와 비교합니다.

예시

  • 입력: "3148" -> 출력: true
  • 입력: "9997" -> 출력: true
  • 입력: "1230" -> 출력: false
  • 입력: "00" -> 출력: true

힌트

  • 마지막 문자를 제외한 범위만 순회해 숫자 합을 구해 보세요.
  • 합을 10으로 나눈 나머지가 체크 숫자와 같은지 확인하면 됩니다.

해설

마지막 문자는 검증에 사용할 체크 숫자이므로 합산 대상에서 제외합니다. 문자열의 처음부터 마지막 문자 직전까지 순회하며 각 문자를 숫자로 바꿔 합을 누적합니다.

누적한 합을 10으로 나눈 나머지는 합의 일의 자리입니다. 이 값과 마지막 체크 숫자를 비교하면 라벨이 올바른지 판별할 수 있습니다.

문자열을 한 번 순회하므로 시간 복잡도는 O(n)이고, 합계 변수만 사용하므로 공간 복잡도는 O(1)입니다.

코드 작성

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

JavaScript 에디터 로딩 중...

커스텀 테스트

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

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

실행 결과

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

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

댓글

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