알고리즘_Algorism/프로그래머스
[프로그래머스] lv.1 추억 점수 (JAVA 자바)
Jye_647
2023. 8. 8. 23:35
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
첫 번째 풀이
- 점수 합계를 담을 answer []를 만들어 준다.
- photo의 길이 만큼 for문을 돌린다.
- photo [i]의 길이만큼 for문을 돌린다.
- name의 배열과 photo의[][j]값이 같다면 합계에 점수 추가.
두 번째 풀이
- 점수 합계를 담을 answer[]를 만들어 준다.
- HashMap을 사용하여 key, value를 지정해 준다.
- for문을 통해 HashMap에 값을 넣어준다.
- photo의 길이만큼 for문을 돌린다.
- photo[i]의 값들을 하나씩 반환하여 사진 속 인물과 비교한다.
- 만약 같으면 그리움 점수 추가.
첫 번째 풀이코드
public int[] solution(String[] name, int[] yearning, String[][] photo) {
int[] answer = new int[photo.length]; // 점수 합계를 담을 배열
for(int i=0; i<photo.length; i++){ // photo의 길이 만큼 0, 1, 2{{4}{4}{4}}
for(int j=0; j<photo[i].length; j++){ // photo[i]의 길이만큼 4, 4, 4
for(int k=0; k<name.length; k++){ // name 배열 길이 만큼 0, 1, 2, 3
if(photo[i][j].equals(name[k])){ // photo의 배열 하나하나 name과 비교한다.
answer[i] += yearning[k]; // yearning의 길이와 name의 길이와 같기에 배열 방번호를 k로 넣어준다.
}
}
}
}
return answer;
}
두 번째 풀이코드
public int[] solution(String[] name, int[] yearning, String[][] photo) {
int[] answer = new int[photo.length];
// HashMap을 이용하여 key, value를 지정해준다.
HashMap<String, Integer> year = new HashMap<>();
// for문을 통해 HashMap에 name과 yearning을 put해준다.
for (int i = 0; i < name.length; i++) {
year.put(name[i], yearning[i]);
}
// photo의 길이 만큼 for문을 돌린다.
for (int i = 0; i < photo.length; i++) {
for (String person : photo[i]) { // {{1} {2} {3}}
for (String n : year.keySet()) { //key 값을 반환
if (n.equals(person)) {
answer[i] += year.get(n); // value값을 가져온다.
}
}
}
}
return answer;
}