마이의 개발 블로그

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

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

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

개발자마이 2023. 4. 20. 01:54
반응형
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

접근 방식

주어진 이름들에 추억 점수를 매치시킨 후, 사진들을 보며 주어진 이름들에 해당하는 인물이 있는 경우에만 점수를 가산하여 각 사진별 점수를 매기면 되는 간단한 문제이다. 특별한 예외사항은 없었다.

로직 설명

- 사진의 개수만큼 답변 배열 초기화

- 이름과 추억점수를 매치시킬 map 선언 후 이름(name)에 해당하는 점수(yearning) map에 집어넣기

- 각 사진(photo[i])에 있는 이름(str)을 탐색하며:

  1) map에서 해당되는 이름을 찾아 추억 점수를 sum에 가산 (없는 경우 0점 처리)

  2) 답변 배열에 해당 사진의 추억점수 합 저장

- 답변 배열 반환

import java.util.*;

class Solution {
    public int[] solution(String[] name, int[] yearning, String[][] photo) {
        int[] answer = new int[photo.length];
        
        Map<String, Integer> map = new HashMap<>();
        
        for(int i = 0; i < name.length; i++){
            map.put(name[i], yearning[i]);
        }
        
        for(int i = 0; i < photo.length; i++){
           int sum = 0;
           for(String str : photo[i]){
              sum += map.getOrDefault(str, 0);   
           }
           answer[i] = sum;
        }    
            
        return answer;
    }
}

Note

- 어디 앉아서 시간 떼울 일이 좀 있어서 폰으로 문제를 풀어봤는데 간단한 문제들은 폰으로 접속해서 풀어보는 것도 나쁘지 않은 듯하다. 프로그래머스에 모바일 뷰가 있으면 좋을텐데 좀 아쉽다.

반응형
Comments