기초다지기/JS 코딩테스트
javaScript 정수 배열 조건문
by 김빵그
2023. 11. 8.
문제
학생들의 등수를 담은 정수배열 rank 와 대회 참여 가능 여부가 담긴 bool 배열 attendance가 매개변수로 주어질 때
등수가 높은 순서대로 3명을 뽑아 식을 구하시오
나의 풀이
function solution(rank, attendance) {
var arr = rank.filter((n, i) => attendance[i]).sort((a, b) => a - b).slice(0, 3) ;
return 10000 * rank.indexOf(arr[0]) + 100 * rank.indexOf(arr[1]) + rank.indexOf(arr[2]);
}
- arr
- rank 순서 배열에서 attendancce bool 값을 사용해 새로운 배열을 생성한다
- 오름차순으로 정렬하고 상위 3개 요소만 남겨둠ㅁ
- indexOf를 사용하여 해당 인덱스 값으로 계산식
다른 풀이
function solution(rank, attendance) {
const [a, b, c] = rank
.map((r, i) => [r, i])
.filter(([_, i]) => attendance[i])
.sort(([a], [b]) => a - b);
return 10000 * a[1] + 100 * b[1] + c[1];
}
- map
- rank 배열의 요소를 [r, i ] 형태의 배열로 매핑하고 filter를 사용하여 attendance 해당 위치만 남겨둔다
- sort를 사용하여 [a] 값에따라 배열 오름차순으로 정렬
-