https://school.programmers.co.kr/learn/courses/30/lessons/81303#
ํ๋ก๊ทธ๋๋จธ์ค
SW๊ฐ๋ฐ์๋ฅผ ์ํ ํ๊ฐ, ๊ต์ก, ์ฑ์ฉ๊น์ง Total Solution์ ์ ๊ณตํ๋ ๊ฐ๋ฐ์ ์ฑ์ฅ์ ์ํ ๋ฒ ์ด์ค์บ ํ
programmers.co.kr
ํ๋ก๊ทธ๋๋จธ์ค ๋ ๋ฒจ 3. ์ ๋ต๋ฅ 40%
์ฒซ ์๋์์ Map์ ํ์ฉํ์ฌ ํ์๋ค.
๊ทธ๋ฐ๋ฐ ํจ์จ์ฑ ์คํจ..!ใ ใ
๋จ์ ๊ตฌํ์ด ์๋๋ผ, ์ฐ๊ฒฐ ๋ฆฌ์คํธ ํ์์ผ๋ก ํ์ด์ผ ํ๋ ๋ฌธ์ ์๋ค ๐คฏ
๊ทธ๋์ next, prev ๋ฐฐ์ด์ ๊ฐ๊ฐ ๋ค์/์ด์ ์์น๋ฅผ ์ ์ฅํด์ฃผ๋ฉฐ ์ฐ๊ฒฐ ๊ด๊ณ๋ฅผ ๋ํ๋๋ค.
์ด๊ฑด ์ค์ ์ฐ๊ฒฐ๋ฆฌ์คํธ ๊ธฐ๋ฒ์ ์๋๊ณ , ๋ฐฐ์ด๋ก ์๋ ๋ฐฉ์์ ๋ชจ๋ฐฉํ ๊ฒ์ด๋ค!
์ค์ ๋ก ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด, ์๋์ ๊ฐ์ด ํฌ์ธํฐ๋ฅผ ๊ฐ์ง๋ ๋ ธ๋ ํด๋์ค๋ฅผ ์ ์ธํ๊ณ ์ฐ๋ฉด ๋๋ค
class Node {
constructor(index) {
this.index = index;
this.prev = null;
this.next = null;
}
}
์ธ๋ฑ์ค ์ฐ๊ฒฐ์ํค๋๋ผ ๋จธ๋ฆฌ ํฐ์ง ๋ป ํ๋๋ฐ ๋๊ธฐ๋ก ๋ถ์ก๊ณ ํด๊ฒฐ ์....๐ฅน
๋์ ํ์ด (๋ฐฐ์ด ํ์ฉ)
function solution(n, k, cmd) {
let nowIdx = k;
let deleted = [];
let next = new Array(n).fill().map((_,i)=>i+1);
let prev = new Array(n).fill().map((_,i)=>i-1); // ์ฒซ ์ธ๋ฑ์ค์ prev๋ -1
next[n-1] = -1; // ๋ง์ง๋ง ์ธ๋ฑ์ค์ next๋ -1
cmd.forEach(word=>{
if(word[0]=='U'){
let num = word.split(' ')[1];
// num๋งํผ prev๋ฅผ ๋ฐ๋ผ ์ด๋
while(num>0) {
if(prev[nowIdx]<0) break;
nowIdx = prev[nowIdx];
num--;
}
}
if(word[0]=='D'){
let num = word.split(' ')[1];
// num๋งํผ next๋ฅผ ๋ฐ๋ผ ์ด๋
while(num>0) {
if(next[nowIdx]<0) break;
nowIdx = next[nowIdx];
num--;
}
}
if(word[0]=='C'){
deleted.push([nowIdx,prev[nowIdx],next[nowIdx]]);
// ์ด์ ๊ฐ์ next๋ฅผ ํ์ฌ๊ฐ next๋ก, ๋ค์๊ฐ์ prev๋ฅผ ํ์ฌ๊ฐ prev๋ก ์ด์ด์ค
if(prev[nowIdx]!=-1) next[prev[nowIdx]] = next[nowIdx];
if(next[nowIdx]!=-1) prev[next[nowIdx]] = prev[nowIdx];
nowIdx = next[nowIdx]<0? prev[nowIdx] : next[nowIdx];
}
if(word[0]=='Z' && deleted.length>0){
let [idx,P,N] = deleted.pop();
if(P!=-1) next[P] = idx;
if(N!=-1) prev[N] = idx;
}
})
const answer = Array(n).fill('O');
for (let [i,P,N] of deleted) {
answer[i] = 'X';
}
return answer.join('');
}
'๐ ์๊ณ ๋ฆฌ์ฆ > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C++/PGS] Lv.2 : ํํ (2019 ์นด์นด์ค) (0) | 2025.05.14 |
---|---|
[Javascript/PGS] Lv.2 : [1์ฐจ] ์บ์ (2018 KAKAO) (0) | 2025.05.14 |
[Javascript/PGS] Lv.3 : ์ธ์ฌ๊ณ ๊ณผ (0) | 2025.05.09 |
[MySQL/PGS] Lv.3 : ์ค๋ ๊ธฐ๊ฐ ๋ณดํธํ ๋๋ฌผ(2) (0) | 2025.05.09 |
[Javascript/PGS] Lv.3 : ํ๊ดด๋์ง ์์ ๊ฑด๋ฌผ (2022 KAKAO) (0) | 2025.05.09 |