Prg-Lv.1-같은 숫자는 싫어

이은지·2023년 1월 2일
0

코딩테스트

목록 보기
49/76

문제

연속적인 숫자만 제거하고 남은 숫자를 반환하는 배열을 return

입출력 예 설명

arr = [1,1,3,3,0,1,1] / return = [1, 3, 0, 1]
arr = [4,4,4,3,3] / return = [4,3]

풀이

function solution(arr) {
  return arr.filter((value, index) => value !== arr[index + 1]);
}

[손코딩]
1. 다음 숫자와 비교해야 하므로 반복문에서 arr[i]와 arr[i+1]로 비교
2. 같으면 i를 증가시켜 비교를 계속하고
3. 다르면 빈배열에 arr[i]값을 push하고 i를 증가하기

[처음 풀이]

  • 틀린건 아니지만 더 좋은 풀이를 내걸로 만들고 싶었다
let i = 0;
let answer = [];
while (true) {
  if (i === arr.length - 1) {
    //i가 마지막 인덱스일때 종료
    answer.push(arr[i]);
    break;
  }
  if (arr[i] === arr[i + 1]) {
    //다음 숫자와 비교했을 때 같으면 i++
    i++;
  } else {
    //
    answer.push(arr[i]); //다르면 answer에 push
    i++;
  }
return answer;

0개의 댓글