Java

프로그래머스: 추억 점수

Daeryuk Kim 2023. 11. 14. 14:17
import java.util.HashMap;
import java.util.Map;
class Solution {
    public int[] solution(String[] name, int[] yearning, String[][] photo) {
        int[] answer = new int[photo.length];

        // 각 사람에 대한 갈망 점수를 저장할 맵 생성
        Map<String, Integer> score = new HashMap<String, Integer>();

        // 주어진 이름과 해당하는 갈망 점수로 맵을 채움
        for (int i=0; i<name.length; i++) {
            score.put(name[i], yearning[i]);
        }

        // 각 그룹에 대해 반복
        for (int i=0; i<photo.length; i++) {
            int sum = 0;  // 그룹의 총 점수를 저장할 변수 초기화
            // 현재 그룹의 각 사람에 대해 반복
            for (int j=0; j<photo[i].length; j++) {
                boolean check = score.containsKey(photo[i][j]);

                // 사람이 맵에 있다면 그들의 갈망 점수를 총합에 더함
                if (check == true) {
                    sum += score.get(photo[i][j]);
                } else {
                    continue; // 사람이 맵에 없다면 다음 반복으로 이동
                }
            }
            // 현재 그룹의 총합을 결과 배열에 저장
            answer[i] = sum;
        }
        // 각 그룹의 총 점수를 담은 배열을 반환
        return answer;
    }

    public static void main(String[] args) {
            String[] name = {"may", "kein", "kain", "radi"};
            int[] yearing = {5, 10, 1, 3};
            String[][] photo = {
                {"may", "kein", "kain", "radi"},
                {"may", "kein", "brin", "deny"},
                {"kon", "kain", "may", "coni"}
            };

            // Solution 클래스의 인스턴스 생성
            Solution sol = new Solution();

            // 샘플 데이터로 solution 메소드 호출하고 결과 저장
            int[] result = sol.solution(name, yearing, photo);
            
            // 결과 출력
            for (int r : result) {
                System.out.print(r+ " ");
            }

    }
}
  • solution 메소드는 세 가지 매개변수를 받습니다: 이름 배열, 갈망 점수 배열, 및 그룹을 나타내는 2차원 배열. 각 그룹에 대한 총 갈망 점수를 계산하고 이를 담은 배열 (answer)을 반환합니다.
  • main 메소드solution 메소드를 테스트하는 용도로 사용됩니다. 샘플 입력 데이터를 초기화하고, Solution 클래스의 인스턴스를 생성한 후, 샘플 데이터로 solution 메소드를 호출하고 결과를 출력합니다.
  • 전체적인 코드의 목적은 각 사람에게 갈망 점수를 할당하고 주어진 이름과 갈망 점수에 기반하여 각 그룹의 총 갈망 점수를 계산하는 것입니다.