처음 과락 점수의 위치 찾기

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

js-basic easy high-order-functions 함수명: solution 제한 시간: 200ms

정수 배열 scores가 주어질 때, 60점 미만인 점수가 처음 나타나는 위치를 반환하는 solution 함수를 작성하세요. 과락 점수가 하나도 없으면 -1을 반환합니다.

오늘의 메서드

findIndex()는 배열에서 조건을 처음 만족하는 요소의 인덱스를 찾을 때 사용하는 메서드입니다.

메서드 설명

이 문제에서는 점수 배열을 앞에서부터 보다가 60점 미만 점수가 처음 나오는 위치를 찾아야 합니다. findIndex()를 사용하면 조건을 만족하는 첫 요소를 찾는 즉시 그 인덱스를 반환할 수 있습니다. 끝까지 찾아도 없으면 자동으로 -1을 반환합니다.

기본 문법

arr.findIndex((item) => 조건식)

사용 예시

[88, 73, 61, 95].findIndex((score) => score < 60) // -1
[90, 58, 77].findIndex((score) => score < 60) // 1
['aa', 'bbb', 'c'].findIndex((word) => word.length === 1) // 2

주의할 점

  • findIndex()는 값이 아니라 인덱스를 반환합니다.
  • 조건을 만족하는 요소가 없으면 -1을 반환합니다.
  • 이 문제에서 60점은 과락이 아니므로 조건은 score < 60이어야 합니다.

제한사항

  • scores는 길이 1 이상인 정수 배열입니다.
  • 각 점수는 0 이상 100 이하입니다.
  • 60점 미만 점수가 처음 나타나는 위치를 반환합니다.
  • 과락 점수가 없으면 -1을 반환합니다.

예시

  • 입력: [88, 73, 61, 95] → 출력: -1
  • 입력: [90, 58, 77] → 출력: 1
  • 입력: [60, 60, 60] → 출력: -1

힌트

  • 과락 점수의 개수가 아니라 처음 나온 위치가 필요합니다.
  • 각 점수가 60점 미만인지 검사하는 조건식을 findIndex() 안에 넣어 보세요.

해설

이 문제는 과락 점수가 있는지 여부를 넘어서, 처음 나타난 위치를 찾아야 합니다. 이럴 때는 조건을 처음 만족한 요소의 인덱스를 돌려주는 findIndex()가 잘 맞습니다.

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

  1. scores 배열에 findIndex()를 호출합니다.
  2. 각 점수가 60점 미만인지 score < 60으로 검사합니다.
  3. 처음 조건을 만족한 위치를 바로 반환합니다.
  4. 끝까지 없으면 -1이 반환됩니다.

예를 들어 [100, 39, 80, 55]에서는 39가 처음 과락 점수이므로 인덱스 1이 정답입니다. 이 문제를 통해 findIndex()조건을 처음 만족한 위치를 찾는 메서드라는 감각을 익힐 수 있습니다.

코드 작성

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

JavaScript 에디터 로딩 중...

커스텀 테스트

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

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

실행 결과

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

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

댓글

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