프로그래머스, 자바스크립트) 배열 만들기 4

2024. 2. 25. 00:46·개발/알고리즘(코딩테스트)

문제

https://school.programmers.co.kr/learn/courses/30/lessons/181918

 

프로그래머스

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

programmers.co.kr

 

풀이

특정 결과가 도출될때까지 어떤 동작을 반복해야 한다 => 반복문!!

조건에 맞게 반복문을 작성해준다.

function solution(arr) {
  let i = 0;
  let stk = [];
  while (i < arr.length) {
    if (stk.length === 0) {
      stk.push(arr[i]);
      i++;
    } else if (stk.length > 0 && stk[stk.length - 1] < arr[i]) {
      stk.push(arr[i]);
      i++;
    } else if (stk.length > 0 && stk[stk.length - 1] >= arr[i]) {
      stk.pop();
    }
  }

  return stk;
}

여기서 중복되는 코드들은 통합해준다.

배열의 길이가 0일때는 위에서 이미 걸리니 아래의 조건에는 배열의 길이가 0 이상인지 확인할 필요가 없다.

그리고 첫번째 조건문과 두번째 조건문의 코드가 중복되니 하나로 합쳐준다.

function solution(arr) {
  let i = 0;
  let stk = [];
  while (i < arr.length) {
    if (stk.length === 0 || stk[stk.length - 1] < arr[i]) {
      stk.push(arr[i]);
      i++;
    } else if (stk[stk.length - 1] >= arr[i]) {
      stk.pop();
    }
  }

  return stk;
}

 

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

'개발 > 알고리즘(코딩테스트)' 카테고리의 다른 글

프로그래머스, 자바스크립트) 배열 만들기 6  (0) 2024.02.26
프로그래머스, 자바스크립트) 구슬을 나누는 경우의 수  (0) 2024.02.25
프로그래머스, 자바스크립트) 조건에 맞게 수열 변환하기 2  (0) 2024.02.22
프로그래머스, 자바스크립트) 수열과 구간 쿼리 4  (0) 2024.02.19
프로그래머스, 자바스크립트) 문자열 여러 번 뒤집기  (1) 2024.02.18
'개발/알고리즘(코딩테스트)' 카테고리의 다른 글
  • 프로그래머스, 자바스크립트) 배열 만들기 6
  • 프로그래머스, 자바스크립트) 구슬을 나누는 경우의 수
  • 프로그래머스, 자바스크립트) 조건에 맞게 수열 변환하기 2
  • 프로그래머스, 자바스크립트) 수열과 구간 쿼리 4
빔네모
빔네모
console.log("빔네모")
  • 빔네모
    bimnemo("개발")
    빔네모
  • 전체
    오늘
    어제
    • 기록 (146) N
      • 기술 (37)
        • JavaScript (1)
        • TypeScript (9)
        • React.js (10)
        • Next.js (0)
        • 라이브러리,도구 (4)
        • HTML,CSS (4)
        • CS (5)
        • BE (4)
      • 개발 (97) N
        • 프로젝트 (0)
        • 트러블슈팅 (5)
        • 알고리즘(코딩테스트) (92) N
      • 정보 (4)
      • 취미 (8)
        • 감상 (8)
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
빔네모
프로그래머스, 자바스크립트) 배열 만들기 4
상단으로

티스토리툴바