양갱의 개발 블로그

[프로그래머스] Lv.1 추억 점수(Java) 본문

코딩테스트/프로그래머스

[프로그래머스] Lv.1 추억 점수(Java)

연지양갱 2025. 3. 29. 22:18
728x90

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

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

문제 풀이

1. 이름이 나오면 점수를 합산해줘야 하기 때문에 Map을 통해서 key, value값을 지정해줍니다.

2. Map에 있는 값이면 value인 점수를 합산해주고, 만약 Map에 없는 이름이라면 0으로 지정해줍니다.

 

딱 두가지만 알고 있으면 됩니다.

여기에서 Map을 선언하고 get을 사용했는데, NullPointerException이 발생했습니다.

만약에 Map에 없는 값을 get하면 당연히 값이 없어서 null 예외처리가 발생되는 경우입니다. 

그래서 Map의 함수를 찾아보면서, getOrDefault(찾는값, default값) 함수를 알게 되었습니다.

 

 

 

최종코드

import java.util.*;

class Solution {
    public int[] solution(String[] name, int[] yearning, String[][] photo) {
        int[] answer = new int[photo.length];
        // name : 사람 이름들
        // yearniing : 점수 배열
        // photo : 각 사진에 찍힌 인물의 이름
        HashMap<String, Integer> score = new HashMap<String, Integer>();
        for (int i=0; i<name.length; i++){
            score.put(name[i], yearning[i]);
            System.out.println("name[i]= "+name[i]+" yearning[i]= "+yearning[i]);
        }
        
        for (int i=0; i<photo.length; i++){
            int totalScore = 0;
            for (int j=0; j<photo[i].length; j++){
                String person = photo[i][j];
                int s = score.get(person);
                totalScore+=s;
                
            }
            System.out.println("result= "+totalScore);
            answer[i] = totalScore;
        }
        
        return answer;
    }
}

 

getOrDefault 참고

https://junghn.tistory.com/entry/JAVA-Map-getOrDefault-%EC%9D%B4%EB%9E%80-%EC%82%AC%EC%9A%A9%EB%B2%95-%EB%B0%8F-%EC%98%88%EC%A0%9C

 

[JAVA] Map - getOrDefault 이란? 사용법 및 예제

getOrDefault - 찾는 키가 존재한다면 찾는 키의 값을 반환하고 없다면 기본 값을 반환하는 메서드 사용 방법 getOrDefault(Object key, V DefaultValue) 매개 변수 : 이 메서드는 두 개의 매개 변수를 허용합니

junghn.tistory.com

 

728x90