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

jaeyong Lee·2024년 7월 10일
0

핵심

  1. boolean을 판별해서 등수와 학생번호 넣기. 등수와 학생번호 --> 우리가 원하는 값은 인덱스 값임으로 key에 순위, value에 인덱스 값(순위 값)

이렇게하면 boolean으로 참석자만 있는 상태에서 등수를 판별하고 그 등수대로 학생번호 까지 구할 수 있음

boolean true 조건문에 rank key값 , 학생번호 value 값 넣어주고

map key값은 정렬이 안됨으로 list로 키 빼서 정렬 -> 이후 정렬된 list 값이 키값임으로
map에 넣어서 value 값 도출해서 계산

코드

import java.util.*;

class Solution {
    public int solution(int[] rank, boolean[] attendance) {
                    
        //2024 07 28 3차 수정
        HashMap<Integer, Integer> map = new HashMap<>();
        
        for(int i=0 ; i < attendance.length ; i++){
            
             if(attendance[i] == true){
                 
                    map.put(rank[i], i);
                 
             }
        
        }
        
        List<Integer> list = new ArrayList<>(map.keySet());
        
        Collections.sort(list);
        
          int a = map.get(list.get(0));    
          int b = map.get(list.get(1));
          int c = map.get(list.get(2));
        
        return 10000 * a + 100 * b + c;
        
     
    }
}

map에 key, value값 넣기 -> map.put([key],[value])

list, map 키 값 가져오는 법 -> .get

0개의 댓글

관련 채용 정보