[프로그래머스 자바스크립트] ‘같은 숫자는 싫어’ 풀어보기

2024. 7. 17. 15:35·Algorithm/Programmers(JavaScript)
목차
  1. 1. 자바스크립트에는 스택이 없나?
  2. 2. 하지만 자바스크랩트 배열에는 top이 없다.
  3. 3. 다른 사람의 풀이

문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/12906 


1. 자바스크립트에는 스택이 없나?

스택을 활용해서 푸는 문제 같았고, 만약 C++로 문제를 풀었다면 STL stack을 활용해서 금방 풀 수 있을 것 같았다.

하지만 자바스크립트에도 스택이 있나? 검색해보니 배열을 활용해서 스택을 직접 구현하는 방법들이 많이 나왔다. 근데 그러지말고 바로 배열을 쓰면 될 것 같아 배열을 사용했다.


2. 하지만 자바스크랩트 배열에는 top이 없다.

하지만 문제를 통과하지 못했다. 왜냐하면 내가 무의식적으로 top을 활용했는데, 자바스크립트의 배열에 .top을 붙여봤자 아무 일도 일어나지 않기 때문이다.

top 대신 ‘배열.length - 1’을 넣으면 어떨까 생각했고, 그렇게 코드를 짜니 정답이었다!!

function solution(arr)
{
    // 빈 배열 선언
    var answer = [];
    
    // arr을 순회하면서 answer의 top가 arr[i]가 아니라면 arr[i]를 answer에 push
    for(var i = 0; i < arr.length; i++) {
        if(answer[answer.length - 1] !== arr[i]) {
            answer.push(arr[i])
        }
    }
    
    return answer;
}

3. 다른 사람의 풀이

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

위 코드는 배열의 해당 index 값과 그 다음 index 값을 비교해서, 같지 않은 index 값만 filter한 배열을 return 해주었다. 정말 간단하고 명쾌한 풀이다!

 

그리고 다른 풀이에서 꿀팁을 발견했는데, 바로 배열의 length 값을 변수로 할당해줘야 성능이 더 좋다는 것이었다.

왜냐하면 변하지 않는 length 값을 변수로 할당해줘야 배열의 length 계산을 한 번만 하기 때문이다! 배열의 length 값을 변수로 빼놓는 것은 생각해보지 않았는데, 다음부터는 이렇게 해야겠다.

저작자표시 비영리 변경금지 (새창열림)

'Algorithm > Programmers(JavaScript)' 카테고리의 다른 글

[프로그래머스 자바스크립트] ‘체육복’ 풀어보기  (0) 2024.08.07
[프로그래머스 자바스크립트] ‘기능개발’ 풀어보기  (0) 2024.07.17
[프로그래머스 자바스크립트] '완주하지 못한 선수' 풀어보기  (0) 2024.07.17
[프로그래머스 자바스크립트] '폰켓몬' 풀어보기  (2) 2024.07.16
[프로그래머스 자바스크립트] 코딩테스트 입문 Day 9,10 풀어보기  (1) 2024.02.14
  1. 1. 자바스크립트에는 스택이 없나?
  2. 2. 하지만 자바스크랩트 배열에는 top이 없다.
  3. 3. 다른 사람의 풀이
'Algorithm/Programmers(JavaScript)' 카테고리의 다른 글
  • [프로그래머스 자바스크립트] ‘체육복’ 풀어보기
  • [프로그래머스 자바스크립트] ‘기능개발’ 풀어보기
  • [프로그래머스 자바스크립트] '완주하지 못한 선수' 풀어보기
  • [프로그래머스 자바스크립트] '폰켓몬' 풀어보기
퀵차분
퀵차분
Web Developer 🥐
  • 퀵차분
    QC's Devlog
    퀵차분
  • 전체
    오늘
    어제
    • 분류 전체보기 (177) N
      • Frontend (31) N
      • Fedify (4)
      • Study (42)
        • NestJS (2)
        • Node.js (3)
        • Modern JS Deep Dive (13)
        • SQL (1)
        • Network (1)
        • 프롬프트 엔지니어링 (4)
        • 인공지능 (9)
        • 시스템프로그래밍 (11)
        • 선형대수학 (1)
      • Intern (4)
      • KUIT (21)
      • Algorithm (48)
        • Baekjoon(C++) (26)
        • Programmers(JavaScript) (22)
      • 우아한테크코스(프리코스) (4)
      • Project (9)
        • crohasang_page (2)
        • PROlog (4)
        • Nomadcoder (2)
      • 생각 (4)
      • Event (7)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    react
    시스템프로그래밍
    next.js
    프로그래머스
    자바스크립트
    리액트
    fedify
    typescript
    백준
    음악추천
    프로그래머스 자바스크립트
    타입스크립트
    KUIT
    인공지능
    알고리즘
    HTML
    티스토리챌린지
    오블완
    프론트엔드
    javascript
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
퀵차분
[프로그래머스 자바스크립트] ‘같은 숫자는 싫어’ 풀어보기

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.