[ํ๋ก๊ทธ๋๋จธ์ค:Javascript] ๋ฐฐ์ด ๋ง๋ค๊ธฐ 6
ํ๋ก๊ทธ๋๋จธ์ค Lv.0
- ๋ฐฐ์ด ๋ง๋ค๊ธฐ 6
๐ ๋ฌธ์ ์ค๋ช
๐ ์ ํ์กฐ๊ฑด
- 1 ≤ arr์ ๊ธธ์ด ≤ 1,000,000
- arr์ ์์๋ 0 ๋๋ 1 ์ ๋๋ค.
๐ ํ์ด
function solution(arr) {
const stk = [];
for ( let i = 0; i < arr.length;) {
if ( stk.length === 0 ) {
stk.push(arr[i++])
} else if ( stk[stk.length -1] === arr[i] ) {
stk.pop(arr[i++]);
} else if ( stk[stk.length -1] !== arr[i] ) {
stk.push(arr[i++])
}
}
return stk.length > 0 ? stk : [-1];
}
โ
๋ฐฐ์ด ๋ง๋ค๊ธฐ 4 ํ๊ณ ๋ฐ๋ก ์ด ๋ฌธ์ ํ์ด๋ณด์๋ค ๐ฅ
i์ ์ด๊ธฐ๊ฐ์ 0์ผ๋ก ์ค์ ํ๊ณ i๊ฐ arr์ ๊ธธ์ด๋ณด๋ค ์์ผ๋ฉด ๋ค์์ ๋ฐ๋ณตํฉ๋๋ค.
: for ( let i = 0; i < arr.length;) { }
๋ง์ฝ stk์ด ๋น ๋ฐฐ์ด์ด๋ผ๋ฉด arr[i]๋ฅผ stk์ ์ถ๊ฐํ๊ณ i์ 1์ ๋ํฉ๋๋ค.
: if ( stk.length === 0 ) {
stk.push(arr[i++])
}
stk์ ์์๊ฐ ์๊ณ , stk์ ๋ง์ง๋ง ์์๊ฐ arr[i]์ ๊ฐ์ผ๋ฉด stk์ ๋ง์ง๋ง ์์๋ฅผ stk์์ ์ ๊ฑฐํ๊ณ i์ 1์ ๋ํฉ๋๋ค.
: if ( stk[stk.length -1] === arr[i] ) {
stk.pop(arr[i++]);
}
stk์ ์์๊ฐ ์๋๋ฐ stk์ ๋ง์ง๋ง ์์๊ฐ arr[i]์ ๋ค๋ฅด๋ฉด stk์ ๋งจ ๋ง์ง๋ง์ arr[i]๋ฅผ ์ถ๊ฐํ๊ณ i์ 1์ ๋ํฉ๋๋ค.
: if ( stk[stk.length -1] !== arr[i] ) {
stk.push(arr[i++])
}
๋ง์ฝ ๋น ๋ฐฐ์ด์ return ํด์ผํ๋ค๋ฉด [-1]์ return ํฉ๋๋ค.
: stk.length > 0 ? stk : [-1]