[JS] 첫 번째로 나오는 음수

Yongmin Park·2024년 6월 3일
0

JS-Programmers

목록 보기
1/14

프로그래머스 문제 링크

문제 풀이 생각 회로

  1. list를 순회하면서 가장 먼저 음수가 나오는 순간 인덱스를 반환한다.
  2. 리스트가 끝나도 리턴되지 않으면 -1을 반환한다.

고민했던 내용

  1. list 이니 map 을 사용해서 반복문을 돌면서 음수를 확인해야겠다고 생각함.
  2. 여러가지 시도했지만 map은 반환하는 것이 있기 때문에 해당 인덱스만 반환되지 않고 각각의 원소에 대한 값들이 반환되었음
    • ex) [12, 4, 15, 46, -2] 을 map 을 순회하며 리턴하면 반환되는 list 는 [-1, -1, -1, -1, 4] 로 구할 수 있으나 다시 순회를 하며 -1 이 아닌 것을 찾아야 해서 다른 방식을 사용하기로 생각함.
  3. 내가 찾던 것은 map 이 아니라 filter 였던 것을 알아냄.
  4. 하지만 filter 도 조건식이 n 개 일치하면 n 개의 원소를 가진 배열을 반환함.
    • ex) [2, 4, -2, -4, 3] => [2, 3]
  5. filter 로 문제를 해결하면 0번째 인덱스를 반환하여야 함.
  6. 번외로 findIndex라는 메서드를 많이 사용하는 것 같음.
    • num_list.findIndex(x => x < 0)
    • 해당 함수는 조건에 가장 먼저 부합하는 하나를 리턴함.
    • 조건식이 없을 경우 -1 을 반환함.

제출 코드

function solution(num_list) {
    for (num in num_list) {
        if (num_list[num] < 0) return Number(num)
    }
    return -1
}
profile
기록으로 기적을

0개의 댓글