Jieunny์ ๋ธ๋ก๊ทธ
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ํ๋ฒ๊ฑฐ ๋ง๋ค๊ธฐ ๋ณธ๋ฌธ
๐ ๋ฌธ์
ํ๋ฒ๊ฑฐ ๊ฐ๊ฒ์์ ์ผ์ ํ๋ ์์๋ ํ๋ฒ๊ฑฐ๋ฅผ ํฌ์ฅํ๋ ์ผ์ ํฉ๋๋ค. ํจ๊ป ์ผ์ ํ๋ ๋ค๋ฅธ ์ง์๋ค์ด ํ๋ฒ๊ฑฐ์ ๋ค์ด๊ฐ ์ฌ๋ฃ๋ฅผ ์กฐ๋ฆฌํด ์ฃผ๋ฉด ์กฐ๋ฆฌ๋ ์์๋๋ก ์์์ ์์ ์๋์๋ถํฐ ์๋ก ์์ด๊ฒ ๋๊ณ , ์์๋ ์์์ ๋ง๊ฒ ์์ฌ์ ์์ฑ๋ ํ๋ฒ๊ฑฐ๋ฅผ ๋ฐ๋ก ์ฎ๊ฒจ ํฌ์ฅ์ ํ๊ฒ ๋ฉ๋๋ค. ์์๊ฐ ์ผํ๋ ๊ฐ๊ฒ๋ ์ ํด์ง ์์(์๋์๋ถํฐ, ๋นต – ์ผ์ฑ – ๊ณ ๊ธฐ - ๋นต)๋ก ์์ธ ํ๋ฒ๊ฑฐ๋ง ํฌ์ฅ์ ํฉ๋๋ค. ์์๋ ์์ด ๊ต์ฅํ ๋น ๋ฅด๊ธฐ ๋๋ฌธ์ ์์๊ฐ ํฌ์ฅํ๋ ๋์ ์ ์ฌ๋ฃ๊ฐ ์ถ๊ฐ์ ์ผ๋ก ๋ค์ด์ค๋ ์ผ์ ์์ผ๋ฉฐ, ์ฌ๋ฃ์ ๋์ด๋ ๋ฌด์ํ์ฌ ์ฌ๋ฃ๊ฐ ๋์ด ์์ฌ์ ์ผ์ด ํ๋ค์ด์ง๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ์์์ ์์ ์์ด๋ ์ฌ๋ฃ์ ์์๊ฐ [์ผ์ฑ, ๋นต, ๋นต, ์ผ์ฑ, ๊ณ ๊ธฐ, ๋นต, ์ผ์ฑ, ๊ณ ๊ธฐ, ๋นต]์ผ ๋, ์์๋ ์ฌ์ฏ ๋ฒ์งธ ์ฌ๋ฃ๊ฐ ์์์ ๋, ์ธ ๋ฒ์งธ ์ฌ๋ฃ๋ถํฐ ์ฌ์ฏ ๋ฒ์งธ ์ฌ๋ฃ๋ฅผ ์ด์ฉํ์ฌ ํ๋ฒ๊ฑฐ๋ฅผ ํฌ์ฅํ๊ณ , ์ํ ๋ฒ์งธ ์ฌ๋ฃ๊ฐ ์์์ ๋, ๋ ๋ฒ์งธ ์ฌ๋ฃ์ ์ผ๊ณฑ ๋ฒ์งธ ์ฌ๋ฃ๋ถํฐ ์ํ ๋ฒ์งธ ์ฌ๋ฃ๋ฅผ ์ด์ฉํ์ฌ ํ๋ฒ๊ฑฐ๋ฅผ ํฌ์ฅํฉ๋๋ค. ์ฆ, 2๊ฐ์ ํ๋ฒ๊ฑฐ๋ฅผ ํฌ์ฅํ๊ฒ ๋ฉ๋๋ค.
์์์๊ฒ ์ ํด์ง๋ ์ฌ๋ฃ์ ์ ๋ณด๋ฅผ ๋ํ๋ด๋ ์ ์ ๋ฐฐ์ด ingredient๊ฐ ์ฃผ์ด์ก์ ๋, ์์๊ฐ ํฌ์ฅํ๋ ํ๋ฒ๊ฑฐ์ ๊ฐ์๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํ์์ค.
์ ํ์ฌํญ
- 1 ≤ ingredient์ ๊ธธ์ด ≤ 1,000,000
- ingredient์ ์์๋ 1, 2, 3 ์ค ํ๋์ ๊ฐ์ด๋ฉฐ, ์์๋๋ก ๋นต, ์ผ์ฑ, ๊ณ ๊ธฐ๋ฅผ ์๋ฏธํฉ๋๋ค.
๐ก ์์ด๋์ด
ingredient ๋ฐฐ์ด์ ๋ฌธ์์ด๋ก ๋ฐ๊พผ๋ค.
1231 ์ ์ ๊ท์์ผ๋ก ์ ์ฅํด๋๊ณ , 1231์ด ์์ ๋ ๊น์ง ๋ฐ๊พผ ๋ฌธ์์ด์์์ 1231์ ์ ๊ฑฐํด์ค๋ค.
์ ๊ฑฐํ ๋๋ง๋ค answer++ ํด์ค๋ค.
=> ํ ์คํธ ์ผ์ด์ค 5๊ฐ๊ฐ ์๊ฐ์ด๊ณผ๋ก ํต๊ณผ ์๋จ
์ฒ์์ ์คํ์ผ๋ก ํ๊น ํ๋ค๊ฐ ๋ฌธ์์ด๋ก ํผ๊ฑฐ๋ผ์ ์คํ์ผ๋ก ๋ค์ ๋์๊ฐ์ ํ์ด๋ดค๋ค.
๋ฐฐ์ด ํ๋ ์ ์ธํ๊ณ , ingredient ๋๋ฉด์ ํ๋์ฉ ๋ฃ๊ณ ๊ธธ์ด 4์ด์ ๋๋ฉด ๋ค์์๋ถํฐ 4๊ฐ ๋นผ์ '1231'์ธ์ง ํ์ธ
'1231'์ด๋ฉด pop()์ผ๋ก ํ๋์ฉ ๋นผ์ค๋ค.
โ๏ธ ํ์ด
1. ์ฒ์ ์๋ํ ํ์ด -> ๋ฌธ์์ด(์ ๊ท์) ์ด์ฉ, ์๊ฐ ์ด๊ณผ
function solution(ingredient) {
var answer = 0;
let ingredientStr = ingredient.join('');
let sequence = /1231/;
while(sequence.test(ingredientStr)){
ingredientStr = ingredientStr.replace(sequence, '');
answer++;
}
return answer;
}
2. ์คํ ํ์ด๋ฒ
function solution(ingredient) {
var answer = 0;
const stk = [];
for(let i=0; i<ingredient.length; i++){
stk.push(ingredient[i]);
if(stk.length >= 4){
let str = stk.slice(-4).join('');
if(str === '1231'){
stk.pop();
stk.pop();
stk.pop();
stk.pop();
answer++;
}
}
}
return answer;
}
โฐ ์๊ฐ ๋ณต์ก๋ ๊ณ์ฐ์ ๋ฐ๋ก ์ํ๊ณ ์๊ฐ๋๋๋๋ก ํ๋ค๋ณด๋ ์ด๋ค ์๊ณ ๋ฆฌ์ฆ์ด ๋ ๋น ๋ฅธ์ง ์๊ฐ ์ํ๊ฒ ๋์ ์๊ฐ์ด๊ณผ๊ฐ ๋จ๋ ๊ฑฐ ๊ฐ๋ค..
'Study > Coding Test' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ๊ฐ์ธ์ ๋ณด ์์ง ์ ํจ๊ธฐ๊ฐ (0) | 2023.02.02 |
---|---|
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ์ ๊ณ ๊ฒฐ๊ณผ ๋ฐ๊ธฐ (0) | 2023.02.02 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ์ฑ๊ฒฉ ์ ํ ๊ฒ์ฌํ๊ธฐ (2) | 2023.02.02 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ์ ๊ท ์์ด๋ ์ถ์ฒ (0) | 2023.02.02 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ์น์์ด(2) (0) | 2023.02.01 |