본문 바로가기

항해99_10기/[2주차] 알고리즘 문제풀이

[15번][중급] 같은 숫자는 싫어

문제

https://programmers.co.kr/learn/courses/30/lessons/12906

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

나의 답

[pseudo code]
1. pointer=arr[0]를 만들고, answer 배열에 push
2. 배열을 돌면서(i=1부터) point !==arr[i]이면 arr[i]를 answer에 push하고, 포인터 값을 재할당

function solution(arr) {
  const answer = [];
  let pointer = arr[0];
  answer.push(pointer);
  for (let i = 1; i < arr.length; i++) {
    if (pointer !== arr[i]) {
      answer.push(arr[i]);
      pointer = arr[i];
    }
  }
  return answer;
}

console.log(solution([1, 1, 3, 3, 0, 1, 1]));


// 메서드 사용으로 코드 줄이기
function solution(arr) {
  return arr.filter((v, i) => val != arr[i + 1]);
}