반응형
문제설명
정수 리스트 num_list가 주어질 때, 첫 번째로 나오는 음수의 인덱스를 return하도록 solution 함수를 완성해주세요. 음수가 없다면 -1을 return합니다.
✅ 내 코드
function solution(num_list) {
const find = num_list.findIndex(a => a<0)
if(find >= 0) {
return find
} else {
return -1
}
}
💻 내가 이용한 메서드
findIndex(): 주어진 판별 함수를 만족하는 배열의 첫 번째 요소에 대한 인덱스를 반환
만족하는 요소가 없으면 -1을 반환
💻 학습한 것
findIndex()와 find()의 비교
1. findIndex(): 만족하는 인덱스를 반환 (없으면 -1을 반환)
2.find(): 만족하는 값을 반환 (없으면 undefined을 반환)
💻 다른사람 코드중에 배울 것
const solution = num_list => num_list.findIndex(v => v < 0)
나와 유사한 방법으로 풀었지만, 코드가 훨씬 간결하다.
findIndex가 조건을 만족하는 인덱스를 반환한다는 것은 알았지만,
만족하지 않을시에는 자동으로 -1을 반환한다는 것을 몰랐다.
굳이 그래서 else를 통해서 -1을 리턴하도록 하지 않아도 되기 때문에 훨씬 간단한 코드의 구현이 가능한 것이다.
findIndx 메서드의 특징을 잘 이해하면 위와같은 코드를 만들수 있겠다는 생각이 들었다.
🙋♀️ 내 생각
처음에는 includes나 indexOf를 쓰려고 생각했는데, 그렇게 코드를 만들다보니 코드가 자꾸 길어져서 findIndex() 사용했다.
만족하는 값을 찾는 find()는 써보고 findIndex()는 처음써보는데 꽤 유용해서 앞으로 자주 이용해야겠다.
어려운 문제는 아니지만 findIndex()를 모르면 이렇게 저렇게 생각을 해볼수있는 문제여서 풀면서 재미를 느꼈다.
반응형
'JavaScript > 알고리즘' 카테고리의 다른 글
프로그래머스 조건에 맞게 수열 변환하기 1 JS ( map() ) (0) | 2023.05.27 |
---|---|
프로그래머스 정수찾기 JS ( includes() ) (0) | 2023.05.27 |
프로그래머스 문자열을 정수로 변환하기 JS (Number(), parseInt(), +) (0) | 2023.05.26 |
프로그래머스 정수 부분 JS (Math.floor() / Math.trunc() / parseInt() ) (0) | 2023.05.26 |
프로그래머스 rny_string JS ( repalceAll() ) (1) | 2023.05.25 |