https://school.programmers.co.kr/learn/courses/30/lessons/176963
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
1차 제출
function solution(name, yearning, photo) {
var answer = [];
let map = new Map();
for(var i = 0 ; i < name.length ; i ++ ){
map.set(name[i],yearning[i])
}
for(var i = 0 ; i < photo.length ; i ++){
let sum = 0;
for(var j = 0 ; j < photo[i].length ; j ++){
sum += map.get(photo[i][j]) || 0;
}
answer.push(sum);
}
return answer;
}
결과 : 100점
문제 자체는 쉬워서 푸는 데에 어려움은 없었다.
제출 이후 다른 분들의 코드를 살펴보다가 한 줄로 문제를 해결하신 분들이 있어서 코드를 가져와보았다.
간단하고 깔끔한 코드라고 생각된다.
function solution(name, yearning, photo) {
return photo.map((v)=> v.reduce((a, c)=> a += yearning[name.indexOf(c)] ?? 0, 0))
}
# Map 문법
const newArray = array.map((element, index, array) => { });
- element: 배열의 현재 요소.
- index (선택적): 현재 요소의 인덱스.
- array (선택적): map이 호출된 원본 배열.
# Reduce 문법
array.reduce((accumulator, currentValue, index, array) => {
// 반환값은 다음 반복의 accumulator가 됨
}, initialValue);
- accumulator: 이전 콜백의 반환값. 초기값으로 시작.
- currentValue: 현재 순회 중인 배열의 요소.
- index (선택적): 현재 요소의 인덱스.
- array (선택적): reduce가 호출된 원본 배열.
- initialValue (선택적): accumulator의 초기값. 생략하면 배열의 첫 번째 요소가 초기값이 됩니다.
'프로그래머스' 카테고리의 다른 글
[프로그래머스] 바탕화면 정리 (0) | 2024.12.02 |
---|---|
[프로그래머스] 공원 산책 (0) | 2024.11.27 |
[프로그래머스] 달리기 경주 (0) | 2024.11.25 |
[프로그래머스] K번째 수 (0) | 2022.03.31 |
[프로그래머스] 위장 (JAVA) (0) | 2022.03.29 |