

TECH.KAKAO.GG
프로그래머스 전국 대회 선발 고사
Algorithm20일 전
문제 설명
-
목표:
rank
배열에는 각 학생의 등수,attendance
배열에는 대회 참가 가능 여부가 주어졌을 때, 참석 가능한 학생들 중 상위 3명을 선발
function solution(rank, attendance) {
// 1. 참가 가능한 학생 (index와 rank 함께 저장)
const candidates = [];
for (let i = 0; i < rank.length; i++) {
if (attendance[i]) {
candidates.push({ index: i, rank: rank[i] });
}
}
// 2. rank 기준 오름차순 정렬
candidates.sort((a, b) => a.rank - b.rank);
// 3. 상위 3명 뽑아서 인덱스 추출
const a = candidates[0].index;
const b = candidates[1].index;
const c = candidates[2].index;
// 4. 정답 계산
return 10000 * a + 100 * b + c;
}
문제 핵심
핵심 키워드
✔️ 인덱스(index)와 등수(rank) 맵핑
✔️ 필터링과 정렬
✔️ 선발된 학생 번호(index) 활용한 수식 계산
문제 풀이 흐름 요약
-
참석 가능한 학생 필터링
→attendance[i] === true
인 학생만 선별 -
해당 학생들만 등수 기준 정렬
→rank
값이 낮을수록 높은 순위 -
정렬된 결과에서 상위 3명 추출
→ 각각의index
가 a, b, c -
공식에 맞춰 계산 후 리턴
→10000 * a + 100 * b + c
키워드
프로그래머스 전국 대회 선발 고사전국 대회 선발 고사JS 맵핑JS 필터링과 정렬