[level 1] 음양 더하기
·
알고리즘/JavaScript
문제 풀이 코드 function solution(absolutes, signs) { return absolutes.reduce((prev, current, idx) => { return signs[idx] === true ? prev + current : prev + -current; }, 0); } 풀이 과정 reduce 함수를 통해 간단히 구현했지만, 아무래도 가독성이 좀 떨어지는거 같았다. 더 간략하게 줄일수 있을거 같아서 다른사람의 풀이를 보고 스스로 자책했다. 다른사람의 풀이 function solution(absolutes, signs) { return absolutes.reduce((acc, val, i) => acc + (val * (signs[i] ? 1 : -1)), 0); } 삼함 연..
[level 1] 비밀 지도
·
알고리즘/JavaScript
문제 풀이 코드 function solution(n, arr1, arr2) { let mapArr = arr1.map((item, index) => item | arr2[index]); return mapArr .map((item) => item.toString(2).padStart(n, '0')) .map((binary) => binary .split('') .map((ii) => (ii === '1' ? '#' : ' ')) .join('') ); } 풀이 과정 문제를 보자마자 비트연산을 해야하는것을 알았다. OR 연산을 통해, 하나라도 1이라면 #으로, 둘다 0이라면 공백으로 지도를 채우면 된다. 그래서 우선 mapArr 라는 배열에 arr1 의 요소와 arr2 의 요소를 각각 OR 연산한 값을 저..
[level 1] 내적
·
알고리즘/JavaScript
문제 풀이 코드 function solution(a, b) { let answer = 0; for (let i = 0; i acc += a[i] * b[i], 0); } reduce 를 이용해 한줄로 깔끔하게!
[level 1] K번째수
·
알고리즘/JavaScript
문제 풀이 코드 function solution(array, commands) { let arr = []; for (let i = 0; i a - b)[ commands[i][2] - 1 ] ); } return arr; } 풀이 과정 slice 메서드와 sort메서드를 이요해 비교적 쉽게 풀어낼수 있었다, 다만, 내가 풀면서도 가독성이 너무 떨어지는거 같았다. 하지만 다른 방법이 도저히 생각나지 않았다, 그래서 다른 사람의 풀이를 봤다. 다른사람의 function solution(array, commands) { return c..
[level 1] 약수의 개수와 덧셈
·
알고리즘/JavaScript
문제 풀이 코드 function solution(left, right) { let sum = 0; for (let num = left; num