[코테/JAVA] 연습문제 : 추억 점수

    728x90
    반응형

    2023.04.17

    코테 문제풀이 26주차 02번 문제

     

     

    문제

     

     

    접근방법

    1) 문제 그대로 풂

     

     

    코드

    import java.util.*;
    
    class Solution {
        public int[] solution(String[] name, int[] yearning, String[][] photo) {
            return memoryScore(name, yearning, photo);
        }
    
        /**
         * 추억점수
         * @param name 그리워하는 사람의 이름을 담은 문자열 배열
         * @param yearning 각 사람별 그리움 점수를 담은 정수 배열
         * @param photo 각 사진에 찍힌 인물의 이름을 담은 이차원 문자열 배열
         * @return 사진들의 추억 점수 배열
         */
        public static int[] memoryScore(String[] name, int[] yearning, String[][] photo) {
            /*
             * @Desc
             * 2023.04.13
             * 1.<사람이름,그리움점수> LinkedHashMap 선언 및 초기화
             * 2.사진별 추억 점수 계산
             * 3.리스트를 고정배열로 변환 후 리턴
             */
            Map<String, Integer> memoryMap = new LinkedHashMap<>();
            for (int i=0; i<yearning.length; i++)
                memoryMap.put(name[i], yearning[i]);
    
            List<Integer> resultList = new ArrayList<>();
            for (int i=0; i<photo.length; i++) {
                int score = 0;
                for (int j=0; j<photo[i].length; j++) {
                    if (memoryMap.get(photo[i][j]) == null)
                        continue;
                    score += memoryMap.get(photo[i][j]);
                }
                resultList.add(score);
            }
            return resultList.stream().mapToInt(i->i).toArray();
        }
    }

     

     

    결과

     

     

    주의사항

    1) 없음

    728x90
    반응형

    댓글