양옆보다 작은 숫자 개수

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

today easy neighbor-pattern 함수명: solution 제한 시간: 200ms

정수 배열 nums가 주어질 때, 자기 양옆 숫자보다 모두 작은 위치의 개수를 반환하는 solution 함수를 작성하세요.

제한사항

  • nums는 정수 배열입니다.
  • 양끝 원소는 한쪽 이웃이 없으므로 세지지 않습니다.
  • 어떤 위치의 값이 왼쪽 값보다 작고, 동시에 오른쪽 값보다 작을 때만 개수에 포함합니다.
  • 배열 길이가 3보다 작으면 정답은 0입니다.

예시

  • 입력: [5, 2, 4, 1, 3] → 출력: 2
  • 입력: [1, 2, 3, 4] → 출력: 0
  • 입력: [3, 1, 1, 3] → 출력: 0

힌트

  • 양끝을 제외한 위치만 확인하면 됩니다.
  • 현재 값이 nums[i - 1]nums[i + 1]보다 모두 작은지 비교해 보세요.

해설

이 문제는 배열을 한 번만 순회하면 풀 수 있습니다.

  1. 인덱스 1부터 nums.length - 2까지 확인합니다.
  2. 각 위치에서 현재 값이 왼쪽 값과 오른쪽 값보다 모두 작은지 검사합니다.
  3. 조건을 만족하면 개수를 1 증가시킵니다.
  4. 순회가 끝나면 누적한 개수를 반환합니다.

핵심은 양옆 두 값과의 비교가 모두 엄격한 부등호여야 한다는 점입니다. 따라서 이웃한 값과 같으면 작은 위치로 보지 않습니다.

코드 작성

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

JavaScript 에디터 로딩 중...

커스텀 테스트

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

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

실행 결과

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

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

댓글

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