Contents
https://school.programmers.co.kr/learn/courses/30/lessons/176963
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
사진 안에는 여러명의 사람들이 있다.
그리고 그 사람들의 이름이 들어있는 배열과 사람에 대한 추억 점수가 들어있는 배열이 매개변수로 받게 된다.
또 매개변수로 하나 더 받아오는데 사진 여러장에 각각 있는 사람의 이름이 있는 이차원 배열이다.
만약 [may], [5], [may, tan] 이렇게 받아오면 최종 추억 점수는 5점인 셈이다
얼마전 푼 문제에서 HashMap을 사용해서 이번에도 사용해보았다.
key에는 사람의 이름, value에는 그 사람에 해당하는 점수를 넣어서 사람의 이름이 나올 때마다 그 이름에 해당하는 점수를 출력해서 사용했다.
// 프포그래머스 추억 점수
// 사진 속의 인물의 그리움 점수의 합게가 해당 사진의 추억 점수
// map으로 점수랑 이름이라 같이 씀
import java.util.*;
class Solution {
public int[] solution(String[] name, int[] yearning, String[][] photo) {
int[] answer = new int[photo.length];
// 멤버 리스트를 map에다가 바꿔줌. 키엔 이름, 값엔 점수를 넣어줌
Map<String, Integer> namemap = new HashMap<>();
// name이 yearing보다 길수도 있음
for (int i = 0; i < yearning.length; i++) {
namemap.put(name[i], yearning[i]);
}
// 이름 비교해서 점수 합
for (int i = 0; i < photo.length; i++) {
for (int j = 0; j < photo[i].length; j++) {
for (int k = 0; k < name.length; k++) {
if (photo[i][j].equals(name[k])) {
answer[i] += namemap.get(name[k]);
}
}
}
}
return answer;
}
}
3중 for문은 사용하고 싶지 않았는데 다른 사람들 모두 써서 그냥 써버렸다
잘하면 2중으로도 해결할 수 있을지도!?
'프로그래머스' 카테고리의 다른 글
[프로그래머스] 2016년 (JAVA) (4) | 2025.01.25 |
---|---|
[프로그래머스] 덧칠하기 (JAVA) (2) | 2024.12.28 |
[프로그래머스] 달리기 경주 (JAVA) (0) | 2024.12.28 |
[프로그래머스] [PCCE 기출문제] 9번 / 지폐 접기 (JAVA) (2) | 2024.12.23 |
[프로그래머스] [PCCP 기출문제] 1번 / 동영상 재생기 (JAVA) (0) | 2024.12.22 |