๐ ๋ฌธ์
ํ๋ฒ๊ฑฐ ๊ฐ๊ฒ์์ ์ผ์ ํ๋ ์์๋ ํ๋ฒ๊ฑฐ๋ฅผ ํฌ์ฅํ๋ ์ผ์ ํฉ๋๋ค. ํจ๊ป ์ผ์ ํ๋ ๋ค๋ฅธ ์ง์๋ค์ด ํ๋ฒ๊ฑฐ์ ๋ค์ด๊ฐ ์ฌ๋ฃ๋ฅผ ์กฐ๋ฆฌํด ์ฃผ๋ฉด ์กฐ๋ฆฌ๋ ์์๋๋ก ์์์ ์์ ์๋์๋ถํฐ ์๋ก ์์ด๊ฒ ๋๊ณ , ์์๋ ์์์ ๋ง๊ฒ ์์ฌ์ ์์ฑ๋ ํ๋ฒ๊ฑฐ๋ฅผ ๋ฐ๋ก ์ฎ๊ฒจ ํฌ์ฅ์ ํ๊ฒ ๋ฉ๋๋ค. ์์๊ฐ ์ผํ๋ ๊ฐ๊ฒ๋ ์ ํด์ง ์์(์๋์๋ถํฐ, ๋นต – ์ผ์ฑ – ๊ณ ๊ธฐ - ๋นต)๋ก ์์ธ ํ๋ฒ๊ฑฐ๋ง ํฌ์ฅ์ ํฉ๋๋ค. ์์๋ ์์ด ๊ต์ฅํ ๋น ๋ฅด๊ธฐ ๋๋ฌธ์ ์์๊ฐ ํฌ์ฅํ๋ ๋์ ์ ์ฌ๋ฃ๊ฐ ์ถ๊ฐ์ ์ผ๋ก ๋ค์ด์ค๋ ์ผ์ ์์ผ๋ฉฐ, ์ฌ๋ฃ์ ๋์ด๋ ๋ฌด์ํ์ฌ ์ฌ๋ฃ๊ฐ ๋์ด ์์ฌ์ ์ผ์ด ํ๋ค์ด์ง๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ์์์ ์์ ์์ด๋ ์ฌ๋ฃ์ ์์๊ฐ [์ผ์ฑ, ๋นต, ๋นต, ์ผ์ฑ, ๊ณ ๊ธฐ, ๋นต, ์ผ์ฑ, ๊ณ ๊ธฐ, ๋นต]์ผ ๋, ์์๋ ์ฌ์ฏ ๋ฒ์งธ ์ฌ๋ฃ๊ฐ ์์์ ๋, ์ธ ๋ฒ์งธ ์ฌ๋ฃ๋ถํฐ ์ฌ์ฏ ๋ฒ์งธ ์ฌ๋ฃ๋ฅผ ์ด์ฉํ์ฌ ํ๋ฒ๊ฑฐ๋ฅผ ํฌ์ฅํ๊ณ , ์ํ ๋ฒ์งธ ์ฌ๋ฃ๊ฐ ์์์ ๋, ๋ ๋ฒ์งธ ์ฌ๋ฃ์ ์ผ๊ณฑ ๋ฒ์งธ ์ฌ๋ฃ๋ถํฐ ์ํ ๋ฒ์งธ ์ฌ๋ฃ๋ฅผ ์ด์ฉํ์ฌ ํ๋ฒ๊ฑฐ๋ฅผ ํฌ์ฅํฉ๋๋ค. ์ฆ, 2๊ฐ์ ํ๋ฒ๊ฑฐ๋ฅผ ํฌ์ฅํ๊ฒ ๋ฉ๋๋ค.
์์์๊ฒ ์ ํด์ง๋ ์ฌ๋ฃ์ ์ ๋ณด๋ฅผ ๋ํ๋ด๋ ์ ์ ๋ฐฐ์ด ingredient๊ฐ ์ฃผ์ด์ก์ ๋, ์์๊ฐ ํฌ์ฅํ๋ ํ๋ฒ๊ฑฐ์ ๊ฐ์๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํ์์ค.
์ ํ์ฌํญ
- 1 ≤ ingredient์ ๊ธธ์ด ≤ 1,000,000
- ingredient์ ์์๋ 1, 2, 3 ์ค ํ๋์ ๊ฐ์ด๋ฉฐ, ์์๋๋ก ๋นต, ์ผ์ฑ, ๊ณ ๊ธฐ๋ฅผ ์๋ฏธํฉ๋๋ค.
์ ์ถ๋ ฅ ์
[2, 1, 1, 2, 3, 1, 2, 3, 1] | 2 |
[1, 3, 2, 1, 2, 1, 3, 1, 2] | 0 |
โ๏ธ ํ์ด
์ฒ์ ์๊ฐํ ๋ ๊ธฐ์กด์ ๋ฐฐ์ด์ ๊ณ์ ๋ฐ๋ณตํด์ 1-2-3-1 ํจํด์ ์ฐพ์ผ๋ฉด ๋๋ค๊ณ ์๊ฐํ๋ค. ํ์ง๋ง ๋นํจ์จ์ ์ด๋ผ๊ณ ์๊ฐํ๋ค. ์์์๋ถํฐ ์ฐพ๊ณ ์ฐพ์ ๊ฒฝ์ฐ ๊ทธ ๋ถ๋ถ์ ์ ๊ฑฐํ๊ณ ๋ค์ ์์์๋ถํฐ ํ์ํ๋ค๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋๋ฐ ๊ทธ๋ ๊ฒ ๋๋ฉด ๋ถํ์ํ๊ฒ ์์์๋ถํฐ ๋ค์ ํ์ํด์ผํ๊ณ ๋ฐฐ์ด์ ์ค๊ฐ์์๋ฅผ ์ง์์ผ ํ๊ธฐ ๋๋ฌธ์ ์๊ฐ์ด ๋ ์ค๋ ๊ฑธ๋ฆด ์ ์๋ค๊ณ ์๊ฐํ๋ค. ๊ทธ๋์ ์คํ ์ ์ด์ฉํ๋ค.
ํจํฐ๊ฐ ๋ค์ด์๋ ingredient ๋ฐฐ์ด์ ์ํํ๋ฉฐ ํ๋์ฉ stack์ด๋ผ๋ ๋ฐฐ์ด์ ๋ฃ์ด์ค๋ค. ๋ง์ฝ ์ด stack ๋ฐฐ์ด์ ๊ธธ์ด๊ฐ 4 ์ด์์ด๊ณ , ๋งจ ๋ง์ง๋ง ์์๊ฐ 1(๋นต)์ธ ๊ฒฝ์ฐ ํ๋ฒ๊ฑฐ๊ฐ ๋ง๋ค์ด์ง ๊ฐ๋ฅ์ฑ์ด ์๊ธฐ ๋๋ฌธ์ stack์ 4๋ฒ์งธ ์์๊น์ง ํ์ธํด๋ณธ๋ค. ์ด๋ ๊ฑฐ๊พธ๋ก 1-3-2-1 ํจํด์ ๋ง์กฑํ๋ ๊ฒฝ์ฐ ํ๋ฒ๊ฑฐ๋ฅผ ๋ง๋ค ์ ์์ผ๋ฏ๋ก 4๋ฒ์ pop์ ํ๋ฉฐ ํจํฐ๋ฅผ ์ ๊ฑฐํ๊ณ answer๋ฅผ 1 ๋ํด์ฃผ๋ฉฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค. ์ฒ์์ ํ์ธํ๋ ๊ณผ์ ์ while ๋ฌธ์ผ๋ก ์์ฑํ์๋๋ฐ ์๊ฐํด๋ณด๋ ์ ์ผ ๋ง์ง๋ง ์์๊ฐ 1(๋นต)์ด์ด์ ํ์ธ์ ํด ๋ณธ ๊ฒฝ์ฐ 4๋ฒ์ pop ์ดํ์ ๋ค์ ํ๋ฒ๊ฑฐ๊ฐ ๋ง๋ค์ด์ง ์ ์์๊ธฐ ๋๋ฌธ์ if๋ฌธ์ผ๋ก ํ๋ฒ๋ง ํ์ธํ๋ ๊ฒ์ผ๋ก ๋ณ๊ฒฝํ๋ค.
โจ๏ธ ์ฝ๋
function solution(ingredient) {
var answer = 0;
const stack = [];
for (const i of ingredient) {
stack.push(i);
if (stack.length >= 4 && stack[stack.length - 1] === 1) {
if (stack[stack.length - 2] === 3 && stack[stack.length - 3] === 2 && stack[stack.length - 4] === 1) {
for (let k = 0; k < 4; k++) stack.pop();
answer += 1;
}
}
}
return answer;
}
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Algorithm] ๋๋ง์ ์ธ์ด (0) | 2023.04.18 |
---|---|
[Algorithm] ๋ฌ๋ฆฌ๊ธฐ ๊ฒฝ์ฃผ (0) | 2023.04.17 |
[Algorithm] ๋ ์ ์ฌ์ด์ ์ ์์ (0) | 2023.04.15 |
[Algorithm] ์๊ฒฉ ์์คํ (1) | 2023.04.13 |
[Algorithm] ์์ดํ ์ค๊ธฐ (1) | 2023.04.12 |