짝수 자리와 홀수 자리 합 비교하기

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

today easy index-parity-scan 함수명: solution 제한 시간: 200ms

문제 설명

숫자로만 이루어진 문자열 code가 주어질 때, 0번 위치부터 센 짝수 인덱스의 숫자 합홀수 인덱스의 숫자 합이 같으면 true, 다르면 false를 반환하는 solution 함수를 작성하세요.

예를 들어 code = "121"이면 짝수 인덱스 숫자는 1, 1이고 합은 2입니다. 홀수 인덱스 숫자는 2이고 합도 2이므로 true를 반환합니다.

제한사항

  • code는 숫자 문자(0~9)로만 이루어진 문자열입니다.
  • code의 길이는 0 이상 100,000 이하입니다.
  • 인덱스는 문자열의 맨 왼쪽을 0번으로 봅니다.
  • 빈 문자열은 짝수 인덱스 합과 홀수 인덱스 합이 모두 0이므로 true를 반환합니다.
  • 반환값은 불리언(true 또는 false)입니다.

예시

  • 입력: "121" → 출력: true
  • 입력: "1234" → 출력: false
  • 입력: "" → 출력: true

힌트

  • 문자열을 왼쪽부터 한 글자씩 확인해 보세요.
  • 현재 위치 i가 짝수인지 홀수인지에 따라 다른 합계에 더하면 됩니다.
  • 숫자 문자는 Number(code[i])처럼 숫자로 바꿀 수 있습니다.

해설

이 문제는 숫자의 값이 짝수인지 홀수인지 보는 문제가 아니라, 문자가 놓인 위치의 인덱스가 짝수인지 홀수인지를 구분하는 문제입니다.

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

  1. 짝수 인덱스 합 evenSum과 홀수 인덱스 합 oddSum0으로 시작합니다.
  2. 문자열 code를 앞에서부터 순회합니다.
  3. 현재 인덱스가 짝수이면 현재 숫자를 evenSum에 더합니다.
  4. 현재 인덱스가 홀수이면 현재 숫자를 oddSum에 더합니다.
  5. 순회가 끝난 뒤 두 합이 같은지 비교해 반환합니다.

문자열을 한 번만 확인하면 되므로 시간 복잡도는 O(n)이고, 추가 공간은 상수만 사용합니다.

코드 작성

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

JavaScript 에디터 로딩 중...

커스텀 테스트

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

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

실행 결과

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

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

댓글

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