Header Banner
Kakao Logo

TECH.KAKAO.GG

기술 자료/Algorithm/프로그래머스 전국 대회 선발 고사

프로그래머스 전국 대회 선발 고사

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) 활용한 수식 계산

문제 풀이 흐름 요약

  1. 참석 가능한 학생 필터링
    attendance[i] === true인 학생만 선별

  2. 해당 학생들만 등수 기준 정렬
    rank 값이 낮을수록 높은 순위

  3. 정렬된 결과에서 상위 3명 추출
    → 각각의 index가 a, b, c

  4. 공식에 맞춰 계산 후 리턴
    10000 * a + 100 * b + c

 

 

키워드

프로그래머스 전국 대회 선발 고사전국 대회 선발 고사JS 맵핑JS 필터링과 정렬