추억 점수

이 문제를 해결하기 위해 먼저 name 배열과 yearning 배열을 이용하여 이름을 키(key), 그리움 점수를 값(value)으로 가지는 해시맵을 생성한다. 이를 통해 각 이름에 대한 그리움 점수를 효율적으로 조회할 수 있다. 그 다음, photo 배열을 순회하며 각 사진에 포함된 이름들을 해시맵에서 검색하고, 해당 이름의 그리움 점수를 합산하여 추억 점수를 계산한다. 사진에 포함된 이름이 해시맵에 없는 경우 기본값 0을 사용한다. 마지막으로, 계산된 추억 점수를 배열로 저장하여 반환한다.

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

public class MemoryScore {

    public int[] solution(String[] name, int[] yearning, String[][] photo) {
        Map<String, Integer> points = new HashMap<>();
        for (int i = 0; i < name.length; i++) points.put(name[i], yearning[i]);
        return Arrays.stream(photo).mapToInt(friends -> Arrays.stream(friends).mapToInt(friend -> points.getOrDefault(friend, 0)).sum()).toArray();
    }
}