꾸준하게
[JS코테] 월간 코드 챌린지 시즌1 본문
728x90
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/70128
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
[나의 풀이]
function solution(a, b) {
let answer = [];
for(i=0;i<a.length;i++){
answer.push(i);
}
return answer.map(x => a[x]*b[x]).reduce((a,b) => a+b);
}
1) 빈 배열 answer 선언
2) for문으로 a의 길이만큼 0부터 a.length-1까지 배열answer에 추가
3) map으로 index가 0부터 a.length-1까지의 a와 b 요소를 곱함
4) reduce로 모든 요소 더함
[다른 풀이]
function solution(a, b) {
return a.reduce((acc, _, i) => acc += a[i] * b[i], 0);
}
내가 푼 방식에서는 for문이 불필요하게 있는데,
이 방식에서는 reduce를 좀 더 활용해서 for문을 쓸 필요가 없게 풀어내었다.
currentValue값이 필요가 없고, index가 필요해서 매개변수 의 두 번째 칸을 _로 처리한 후, 세 번째 칸에 i를 넣어주었다.
728x90
반응형
'JS코딩테스트' 카테고리의 다른 글
[JS코테] 월간 코드 챌린지 시즌2 - 약수의 개수와 덧셈 (0) | 2023.04.26 |
---|---|
[JS코테] 문자열 내림차순으로 배치하기 (0) | 2023.04.25 |
[JS코테] 수박수박수박수박수박수? (0) | 2023.04.23 |
[JS코테] 가운데 글자 가져오기 (0) | 2023.04.22 |
[JS코테] 서울에서 김서방 찾기 (0) | 2023.04.21 |