본문 바로가기

코딩테스트

코딩테스트 추억점수

https://school.programmers.co.kr/learn/courses/30/lessons/176963?language=java

 

프로그래머스

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

programmers.co.kr

푸는 방법이 많을건데 문제를 보자마자 해시를 쓰면 쉽게 풀 수 있을 것 같아서 그렇게 했다. 그리고 실제로 매우 쉬웠다.

아래는 내가 쓴 코드다.

package AlgorithsmExample;

import java.util.HashMap;

public class MemoryScore {
    public static void main(String[] args) {
      String testName1[] = {"may", "kein", "kain", "radi"};
      int yearning1[] = {5, 10, 1, 3};
      String photo1[][] = {{"may", "kein", "kain", "radi"}, {"may", "kein", "brin", "deny"}, {"kon", "kain", "may", "coni"}};

      String testName2[] = {"kali", "mari", "don"};
      int yearning2[] = {11, 1, 55};
      String photo2[][] = {{"kali", "mari", "don"}, {"pony", "tom", "teddy"}, {"con", "mona", "don"}};

      String testName3[] = {"may", "kein", "kain", "radi"};
      int yearning3[] = {5, 10, 1, 3};
      String photo3[][] = {{"may"},{"kein", "deny", "may"}, {"kon", "coni"}};

      MemoryScore memoryScore = new MemoryScore();
      memoryScore.solution(testName2, yearning2, photo2);
    }

    public int[] solution(String[] name, int[] yearning, String[][] photo) {
        int[] answer = new int[photo.length];

        HashMap<String, Integer> scores = new HashMap<>();
        for(int i = 0; i< name.length; i++){
            scores.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++){
                if(scores.get(photo[i][j]) != null){
                    sum = sum + scores.get(photo[i][j]);
                }
            }
            answer[i] = sum;

        }
        return answer;
    }
}

 

 

 

 

'코딩테스트' 카테고리의 다른 글

완주하지 못한 선수 (해시)  (1) 2024.10.02
같은 숫자는 싫어  (0) 2024.08.12
프로그래머스 해시 포켓몬  (0) 2024.08.11
같은 숫자는 싫어  (0) 2024.08.08
프로그래머스 / 추억 점수 / 자바  (2) 2024.01.29