seunghyun Note
[프로그래머스] - 추억점수 with JAVA 본문
728x90
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/176963
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 풀이
💻 3중 for문으로 문제를 해결하기!
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;
}
}
- 단점 : 코드 실행이 오래 걸린다.
- feedback : 처음에 contains함수를 써서 왜 틀렸는지 고민을 했지만 contains는 포함 문자를 찾는 것이기 때문에 equals를 사용하자
💻 HashMap 사용하기
HashMap은 Java에서 제공하는 데이터 구조 중 하나로, 키(key)와 값(value)을 가진 쌍으로 데이터를 저장하는 자료구조
HashMap 초기화:
처음에는 name과 yearning 배열을 사용하여 nameYearningMap이라는 HashMap을 만듭니다. 여기서 각각의 이름을 key로, 해당 이름에 대응하는 yearning 값을 value로 매핑합니다.
사진 처리:
photo 배열은 여러 개의 사진을 담고 있습니다. 코드는 사진 배열을 반복하면서 각 사진의 이름을 확인하고, 해당 이름이 nameYearningMap에 있는지 확인합니다.
매칭된 값 처리:
만약 이름이 매핑된 이름 목록에 존재한다면, 해당 이름의 yearning 값을 찾아 answer 배열의 현재 인덱스에 해당 값을 더합니다.
결과 반환:
최종적으로 각 사진에 대해 해당하는 이름의 yearning 값을 누적한 answer 배열을 반환합니다.
java
import java.util.*;
class Solution {
public int[] solution(String[] name, int[] yearning, String[][] photo) {
Map<String, Integer> nameYearningMap = new HashMap<>();
int nameLength = name.length;
// 이름과 yearning 값을 해시맵에 매핑
for (int i = 0; i < nameLength; i++) {
nameYearningMap.put(name[i], yearning[i]);
}
int photoLength = photo.length;
int[] answer = new int[photoLength];
// 각 사진에 대해 이름 확인 및 yearning 값 누적
for (int i = 0; i < photoLength; i++) {
for (int j = 0; j < photo[i].length; j++) {
String currentName = photo[i][j];
if (nameYearningMap.containsKey(currentName)) {
answer[i] += nameYearningMap.get(currentName);
}
}
}
return answer;
}
}
728x90
반응형
'코딩테스트 > 백준' 카테고리의 다른 글
[프로그래머스] - 구명보트 with JAVA (1) | 2024.01.04 |
---|---|
[프로그래머스] - 예상 대진표 with JAVA (0) | 2024.01.04 |
[프로그래머스] N개의 최소공배수 with JAVA (0) | 2024.01.04 |
[프로그래머스] - 멀리 뛰기 with JAVA (0) | 2024.01.04 |
[프로그래머스] 귤 고르기 with JAVA (0) | 2024.01.04 |