๐ต๋ฌธ์ ๋งํฌ
https://school.programmers.co.kr/learn/courses/30/lessons/131704
๐ต๋ดํ์ด
function solution(order) {
let arr = new Array(order.length).fill(0)
for(let i=0; i<=arr.length-1; ++i){
arr[order[i]-1]=i+1
}
let commingNum = 1
let i =0
let sub = []
while(i<=arr.length-1){
while(true){
if(arr[i]===commingNum){
++commingNum
++i
}else if(sub.length>=1 && sub.at(-1)===commingNum){
sub.pop()
++commingNum
}else{
break
}
}
sub.push(arr[i])
++i
}
return commingNum-1;
}
๐ตํ๊ธฐ
์ฒ์์ ์ฝ์ง์ ๋๋ฌด ๋ง์ด ํด์ ๋ฐ๋ก ํฌ์คํ ํ๋ฉด์ ๊น์ง ๊ธ์ ์ด๋ค๐
์ฒซ ์๋ ์ ์๊ฐ์ด๊ณผ๊ฐ ๋๋ฌด ๋จ๊ธธ๋ ๋ฌธ์ ๋ฅผ ์ฝ๊ฒ ์ ๊ทผํ๊ธฐ ์ํด์ ์๋ก์ด ์ด๋ ์ด๋ฅผ ์์ฑํ๋ ํํธ๋ฅผ ์ ๊ฑฐํ๊ณ ๋ฌธ์ ์ ์ ๊ทผํ์ง๋ง ์๊ณ ๋ณด๋ ๋ด๊ฐ while break๋ฅผ ์๋ชป ๊ฑธ์ด์ ์๊ฐ์ด๊ณผ๊ฐ ๋ ๊ฒ ๊ฐ์๋ค. ๊ต์ฅํ ๊ธ๋ฐฉ ํ ๋ฌธ์ ์๋๋ฐ ๊ทธ๊ฑฐ ํ๋๋๋ฌธ์ ์๊ฐ์ ๊ต์ฅํ ๋ง์ด ์ก์ ๋จน์๋ค.
๋ดํ์ ํต์ฌ์ ๋ฌธ์ ๋ฅผ ์ฝ๊ฒ ์ ๊ทผํ๊ธฐ ์ํด ์๋ก์ด Arr๋ฅผ ์์ฑํ๋ ๋ถ๋ถ์ด๋ค.
์ฃผ์ด์ง ์ด๋ ์ด์ ๊ฐ๊ฐ์ ์์๋ฅผ ํธ๋ญ์ ๋ค์ด๊ฐ๋ ์์๋ก ๋ฐ๊พธ์๊ณ ์ด๋ ํ์ด๋ฅผ ๊ต์ฅํ ์ฝ๊ฒ ๋ง๋ค์๋ค.
'๐Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค [JS] > ์์์ฐพ๊ธฐ (0) | 2024.07.07 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค (JS) > ๊ฐ์ฅ ํฐ์ (0) | 2024.07.04 |
ํ๋ก๊ทธ๋๋จธ์ค > ์ฑ๊ฒฉ ์ ํ ๊ฒ์ฌํ๊ธฐ (0) | 2024.06.02 |
ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ ํ์ด(js) > ์์ฃผํ์ง๋ชปํ์ ์(lv1) (0) | 2023.08.04 |
ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ ํ์ด(js) > ๋ ๋ฐ๋จน๊ธฐ(lv2) (0) | 2023.08.03 |