나는매일가운데

Lv2 추억 점수 본문

코테준비/프로그래머스

Lv2 추억 점수

전로찡 2023. 7. 3. 16:04
반응형
import java.util.*;

class Solution {
    public int[] solution(String[] name, int[] yearning, String[][] photo){
        int[] answer = new int[photo.length];


        HashMap <String, Integer> map = new HashMap <String, Integer> ();

        for (int i=0; i<name.length; i++){
            map.put(name[i], (int)yearning[i]);
        }

        for (int j=0; j<photo.length; j++){
            int score = 0;
            int element = 0;
            for(int k=0; k<photo[j].length; k++){

                if(map.containsKey(photo[j][k])){
                    element = (int)map.get(photo[j][k]);
                    score += element;
                } else {
                    score += 0;
                } 
            }
            answer[j] = score;
        }

        return answer;
    }
}

// map.getOrDefault(photo[i][j], 0); 이러한 Method도 있음 확인해 보기 => else 문이 필요 없다 변수명도 줄일 수 있음

- 이번에도 HashMap을 사용해서 각 이름을 Key 값, 점수를 Value로 저장하였음

- 이후 이중배열을 풀며 이중배열의 값이 map안의 key값으로 존재한다면 이라는 조건을 담 (map.getContainsKey 사용)

 => 다만, else문을 추가하여 예외 처리를 하였으나 map.getOrDefault라는 메소드 발견

 => key가 존재한다면 value를 꺼내오고, 없다면 Default값을 설정하는듯...??

반응형

'코테준비 > 프로그래머스' 카테고리의 다른 글

Greedy 알고리즘 문제 (1) 체육복 문제  (0) 2023.07.26
Lv 1. 경주  (0) 2023.07.03