-
Programmers - 두 개 뽑아서 더하기 (Javascript)개발/코딩 테스트 2021. 2. 6. 21:33
[나의 풀이]
1234567891011121314151617function solution(numbers) {var answer = [];for (let i = 0; i < numbers.length - 1; i++) {for (let j = i + 1; j < numbers.length; j++) {const sum = numbers[i] + numbers[j];if ( !answer.includes(sum) ) {answer.push(sum);}}}answer.sort((a, b) => a - b);return answer;}cs [다른 사람의 풀이]
12345678910111213function solution(numbers) {const temp = []for (let i = 0; i < numbers.length; i++) {for (let j = i + 1; j < numbers.length; j++) {temp.push(numbers[i] + numbers[j])}}const answer = [...new Set(temp)]return answer.sort((a, b) => a - b)}cs 내가 짠 코드에서는 합계값을 구한 후 바로 배열에 저장하지 않고,
includes 함수를 써서 배열에 존재하지 않는 값이면 배열에 저장하도록 조건을 추가했다.
다른 천재님께서는 자료구조 중 Set의 특성을 활용하여 조건문을 쓰지 않고 중복값을 제거했다.
※ Set 특성
- 비순차적으로 저장되는 순열구조
- 유일한 값만 저장
Set을 활용할 생각은 전혀 못했는데 저 풀이를 보고 나니 아예 처음부터 Set을 써도 되겠다는 생각이 들어
약간 바꿔서 다시 풀어봤다.
1234567891011function solution(numbers) {const temp = new Set();for ( let i = 0; i < numbers.length - 1; i++ ) {for ( let j = i + 1; j < numbers.length; j++ ) {temp.add(numbers[i] + numbers[j]);}}return [...temp].sort((a, b) => a - b)}cs '개발 > 코딩 테스트' 카테고리의 다른 글
Programmers - 배열 회전시키기 (Javascript) (0) 2022.12.14 Programmers - 문자 반복 출력하기 (Javascript) (0) 2022.12.13 [Programmers] 양꼬치 (Javascript) (0) 2022.12.08 [Programmers] 각도기 (Javascript) (0) 2022.12.08 [Programmers] 숫자 비교하기 (Javascript) (0) 2022.12.08 댓글