문제
https://school.programmers.co.kr/learn/courses/30/lessons/181918
풀이
특정 결과가 도출될때까지 어떤 동작을 반복해야 한다 => 반복문!!
조건에 맞게 반복문을 작성해준다.
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 |