https://school.programmers.co.kr/learn/courses/30/lessons/176963
정답
import java.util.*;
class Solution {
public int[] solution(String[] name, int[] yearning, String[][] photo) {
int[] answer = new int[photo.length];
int len = name.length;
// key: 이름, value: 그리움 점수
HashMap<String, Integer> map = new HashMap<>();
for (int i = 0; i < len; i++) {
map.put(name[i], yearning[i]);
}
for (int i = 0; i < photo.length; i++) {
for (int j = 0; j < photo[i].length; j++) {
// photo[i][j]가 map의 키에 포함되어 있는지 확인하고 값 더하기
if (map.containsKey(photo[i][j])) {
answer[i] += map.get(photo[i][j]);
}
}
}
return answer;
}
}
다른 사람의 풀이
1)
import java.util.*;
class Solution {
public int[] solution(String[] name, int[] yearning, String[][] photo) {
int[] answer = new int[photo.length];
HashMap<String,Integer> map = new LinkedHashMap<>();
for(int i=0; i< name.length; i++){
map.put(name[i],yearning[i]);
}
for(int i =0; i< photo.length;i++){
String[] persons = photo[i];
int score = 0;
for(int j=0; j<persons.length; j++){
String person = persons[j];
if(map.containsKey(person)){
score+=map.get(person);
}
}
answer[i]=score;
}
return answer;
}
}
2)
class Solution {
public int[] solution(String[] name, int[] yearning, String[][] photo) {
int[] answer = new int[photo.length];
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] += yearning[k];
}
}
}
return answer;
}
}
'Java > 프로그래머스' 카테고리의 다른 글
[JAVA] 프로그래머스 - 달리기 경주 (0) | 2024.05.16 |
---|---|
[JAVA] 프로그래머스 - x만큼 간격이 있는 n개의 숫자 (0) | 2024.05.15 |
[JAVA] 프로그래머스 - 하샤드 수 (0) | 2024.05.15 |
[JAVA] 프로그래머스 - 평균 구하기 (0) | 2024.05.15 |
[JAVA] 프로그래머스 - 정수 제곱근 판별 (0) | 2024.05.14 |