알고리즘/Lv1. 프로그래머스

추억 점수

signal시노 2023. 7. 4. 18:16

출처 : https://school.programmers.co.kr/learn/courses/30/lessons/176963

 

import java.util.*;
class Solution {
    public int[] solution(String[] name, int[] yearning, String[][] photo) {
        int[] answer = new int[photo.length];
        Map<String,Integer> nameMap=new HashMap<>();
        //map에 name에 해당되는 점수 저장
        for(int i=0; i<name.length;i++){
            nameMap.put(name[i],yearning[i]);
        }
        
        //photo의 행 길이만큼 반복
        for(int i=0;i<photo.length;i++){
            //photo의 열 길이만큼 반복
            for(int j=0;j<photo[i].length;j++){
                //키값이 존재한다면 키값의 점수 더해주기
                if(nameMap.containsKey(photo[i][j])){
                    answer[i]+=nameMap.get(photo[i][j]);
                }
            }
        }
        return answer;
    }
}

map을 이용하여 아주 쉽게 풀었습니다.

핵심은 containsKey()함수를 활용하여 키값의 유무를 확인하는 것 입니다.

 

 

'알고리즘 > Lv1. 프로그래머스' 카테고리의 다른 글

두 개 뽑아서 더하기  (0) 2023.07.11
k번째수  (0) 2023.07.11
숫자 문자열과 영단어  (0) 2023.07.11
1차 비밀지도  (0) 2023.07.07
달리기 경주  (0) 2023.07.02