-
intro
2개의 배열이 등장할 때마다 어려움을 느끼는 건 나뿐인가..?
오늘 풀었던 문제만 복습 겸 간단 정리 !
풀이
🔗 문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/12950
나의 풀이
function solution(arr1, arr2) { var answer = [[]]; for(i = 0; i < arr1.length; i++) { answer[i] = []; for(y = 0; y < arr1[i].length; y++) { answer[i].push(arr1[i][y] + arr2[i][y]) } } return answer; }
메서드 도전하다가 결국 이중 for문으로 해결...
다른사람의 풀이
function sumMatrix(A,B){ return A.map((arr1, idx1) => arr1.map((val, idx2) => val+B[idx1][idx2])); }
function solution(participant, completion) { const map = new Map(); for(let i = 0; i < participant.length; i++) { let a = participant[i], b = completion[i]; map.set(a, (map.get(a) || 0) + 1); map.set(b, (map.get(b) || 0) - 1); } for(let [k, v] of map) { if(v > 0) return k; } return 'nothing'; }
이 문제의 경우 배열 형태 그대로 리턴하므로
map()
을 사용했다.map()
을 어떻게 풀어서 써야 하는가? 고민이 되었는데 두개의 배열은 두번의map()
으로 ..!!index값 활용도 주목.
🔗 문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/70128
나의 풀이
function solution(a, b) { var answer = 1234567890; let sum = 0; for(x = 0; x < a.length; x++) { sum += a[x] * b[x]; answer = sum; } return answer; }
누적값을 위해 sum 변수 사용
다른사람의 풀이
function solution(a, b) { return a.reduce((acc, _, i) => acc += a[i] * b[i], 0); }
누적값이 필요하므로
reduce()
사용🔗 문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/42576?language=javascript
나의 풀이
function solution(participant, completion) { const m = new Map(); participant.forEach(name => m.set(name, (m.get(name) || 0) + 1)); completion.forEach(name => m.set(name, (m.get(name) || 0) - 1)); for (const [name, value] of m) { if (value) return name; } }
다른사람의 풀이
var solution=(_,$)=>_.find(_=>!$[_]--,$.map(_=>$[_]=($[_]|0)+1))
여기서는
map()
을 활용하여 나머지 값을 문자열로 리턴.결론...
map()
의 index값 활용 또는 메서드 반복 사용해보기 ! 누적값은 새로운 변수대신reduce()
를 사용하기 !'Dev.log' 카테고리의 다른 글
WIL: 6월 2주차 회고 (0) 2023.06.18 TIL: 또다시 2개의 배열 (0) 2023.06.17 TIL: JavaScript 축약코딩 기법_단락평가 (0) 2023.06.15 TIL: Synchronous call back과 Asynchronous call back (0) 2023.06.14 TIL: Git error:failed to push some refs to (0) 2023.06.13 댓글