프로그래머스 - 가장많이 받은 선물

문학적인유사성·2024년 1월 29일
0

language

목록 보기
13/24

아 오랜만에 하려니까 ide없이는 힘드네; ㅋㅋㅋ lv1인데 1시간 걸렸다 ㅠㅠ너무 슬프다...

import java.util.HashMap;

class Solution {
    public int solution(String[] friends, String[] gifts) {
        int answer = 0;
        
        int friends_length = friends.length;
        HashMap<String, Integer> dict = new HashMap<>();
        
        // 점수저장용
        int[] gift_ranking = new int[friends_length];
        // 그래프 저장용
        int[][] gift_graph = new int[friends_length][friends_length];
        
        for(int i=0;i<friends_length;i++){
            dict.put(friends[i], i);
        }
        
        // 점수저장 및 그래프 만들기
        for( String gift : gifts){
            String[] gift_name_temp = gift.split(" ");
            gift_ranking[dict.get(gift_name_temp[0])]++;
            gift_ranking[dict.get(gift_name_temp[1])]--;
            gift_graph[dict.get(gift_name_temp[0])][dict.get(gift_name_temp[1])]++;
        }
        //점수확인
        // for(int i=0;i<friends_length;i++){
        //     System.out.printf(gift_ranking[i]+" ");
        // }
        
       // 그래프 확인
        // for(int i=0;i<friends_length;i++){
        //     for(int j=0;j<friends_length;j++){
        //         System.out.printf("%d ", gift_graph[i][j]);
        //     }
        //     System.out.println("");
        // }
        
        // 돌면서 확인
        for(int i=0;i<friends_length;i++){
            int temp=0;
            
            for(int j=0;j<friends_length;j++){
                if(i==j){
                    continue;
                }
                
                // 더많이주면 받고
                // 같으면 비교비교, 선물지수 내가 더 높으면 다 가져와
                if(gift_graph[i][j] > gift_graph[j][i] || ( gift_graph[i][j] == gift_graph[j][i] && gift_ranking[i]>gift_ranking[j]))
                    temp++;
            }
            
            if(answer< temp){
                answer=temp;
            }
        }
        
        return answer;
    }
}
profile
Are you nervous? Don't be

0개의 댓글