728x90
https://programmers.co.kr/learn/courses/30/lessons/12906
접근
기본적으로 스택을 활용하였다. 숫자들을 탐색하면서 현재 숫자와 스택의 top을 비교한다.
만약 stack의 top과 현재 숫자가 다를 때는 숫자를 스택에 추가하고 같을 때는 추가하지 않는다.
최종적으로 stack을 반환한다.
구현
- filter라는 함수를 만들었고 빈 배열과 arr을 넘긴다.
- 빈 배열은 스택으로 활용된다.
function solution(arr) {
let answer = [];
answer = filter([], arr);
return answer;
}
- 전달받은 숫자들을 탐색하고
- 스택이 비어있을 때 스택에 현재 숫자를 추가하고
- 스택이 비어있지 않을 때는
- 스택의 top과 현재 숫자를 비교하여 같을 때는 continue
- 다를 때는 stack에 push 한다.
function filter(stack, numbers) {
for (let number of numbers) {
if (isEmpty(stack)) stack.push(number);
else {
if (isEqual(stack, number)) continue;
stack.push(number);
}
}
return stack;
}
전체 코드
function filter(stack, numbers) {
for (let number of numbers) {
if (isEmpty(stack)) stack.push(number);
else {
if (isEqual(stack, number)) continue;
stack.push(number);
}
}
return stack;
}
function isEmpty(list) {
if (list.length === 0) return true;
return false;
}
function isEqual(list, b) {
return list[list.length-1] === b;
}
function solution(arr) {
let answer = [];
answer = filter([], arr);
return answer;
}
'프로그래밍 > 함수형 프로그래밍' 카테고리의 다른 글
[함수형 프로그래밍 연습하기] 프로그래머스 Level1 - 핸드폰 번호 가리기 (0) | 2021.08.06 |
---|---|
[함수형 프로그래밍 연습하기] 프로그래머스 Level1 - 평균 구하기 (0) | 2021.08.06 |
함수형 프로그래밍의 특징 (1) (0) | 2021.08.05 |
[함수형 프로그래밍 연습하기] 프로그래머스 Level1 - 가운데 글자 가져오기 (0) | 2021.08.05 |
[함수형 프로그래밍 연습하기] 프로그래머스 Level1 - 약수의 개수와 덧셈 (0) | 2021.08.05 |