양옆보다 작은 숫자 개수
자바스크립트 코딩테스트 문제로 neighbor-pattern 주제를 연습해보세요. 난이도는 easy이며, 브라우저에서 바로 JavaScript로 풀이를 실행할 수 있습니다.
정수 배열 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부터nums.length - 2까지 확인합니다. - 각 위치에서 현재 값이 왼쪽 값과 오른쪽 값보다 모두 작은지 검사합니다.
- 조건을 만족하면 개수를 1 증가시킵니다.
- 순회가 끝나면 누적한 개수를 반환합니다.
핵심은 양옆 두 값과의 비교가 모두 엄격한 부등호여야 한다는 점입니다. 따라서 이웃한 값과 같으면 작은 위치로 보지 않습니다.
코드 작성
starter code를 바탕으로 함수를 완성한 뒤 예제 테스트를 실행해보세요.
JavaScript
에디터 로딩 중...
커스텀 테스트
함수 인자를 JSON 배열 형태로 입력하세요. 예: [3, 5], [[1, 2, 3]]
아직 실행하지 않았습니다.
실행 결과
아직 실행하지 않았습니다.
예제 테스트를 실행하면 여기에서 결과를 확인할 수 있습니다.
댓글
문제 풀이 아이디어, 질문, 반례를 자유롭게 나눠보세요.