728x90
반응형
이번 문제를 풀어 보고 싶다면? 아래 링크를 클릭하세요!
이번 문제의 경우 기본적으로 for 반복문 및 배열의 특성을 활용하면 쉽게 풀 수 있는 문제이다. 유의할 점은 배열 내 중복된 값을 단순히 모두 제거하는 것이 아니라 특정 값이 연속된다면 연속되는 값의 첫 번째 값만을 정답 배열에 넣어야 한다는 점이다.
첫 번째 해답을 기준으로 설명하자면 주어진 배열 arr를 for 반복문으로 탐색하면서 정답 배열의 맨 마지막 값과 현재 탐색 중인 값이 다르다면 정답 배열에 push하고 아니라면 넘어간다. 이 작업을 마치면 정답 배열에는 주어진 배열에서 연속된 숫자를 제외한 숫자들만이 담기게 된다.
filter() 메서드를 활용한 해답도 비슷한데 현재 탐색 중인 값 v와 v의 다음 값 a[i + 1]이 다르다면 배열에 남겨놓고 아니라면 넘어가는 식으로 작업이 이뤄진다.
중복값을 처리하는 연습을 하는 데 매우 유용한 문제이지 싶다.
Solutions
Solution 1.
function solution(arr) { const answer = []; /* for...of Ver. */ for (const v of arr) if(answer[answer.length - 1] !== v) answer.push(v) return answer /* forEach() Ver. */ arr.forEach((v, i, a) => (v !== a[i + 1] ? answer.push(v) : '')); return answer; /* filter() Ver. */ return arr.filter((v, i, a) => v !== a[i + 1]) }
728x90
반응형
'👩💻 Programming > Coding Test 문제 풀이' 카테고리의 다른 글
[Programmers] level 1: 두 정수 사이의 합 by JavaScript (0) | 2022.07.09 |
---|---|
[Programmers] level 1: 나누어 떨어지는 숫자 배열 by JavaScript (0) | 2022.07.09 |
[Programmers] level 1: 가운데 글자 가져오기 by JavaScript (0) | 2022.07.09 |
[Programmers] level 1: 부족한 금액 계산하기 by JavaScript (0) | 2022.07.09 |
[Programmers] level 1: 나머지가 1이 되는 수 찾기 by JavaScript (0) | 2022.07.09 |
댓글