๐Ÿ˜บํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - LV.1 ํ–„๋ฒ„๊ฑฐ ๋งŒ๋“ค๊ธฐ[JS]

laonยท2024๋…„ 6์›” 15์ผ
post-thumbnail

https://school.programmers.co.kr/learn/courses/30/lessons/133502

๋ฌธ์ œ ์„ค๋ช…

ํ–„๋ฒ„๊ฑฐ ๊ฐ€๊ฒŒ์—์„œ ์ผ์„ ํ•˜๋Š” ์ƒ์ˆ˜๋Š” ํ–„๋ฒ„๊ฑฐ๋ฅผ ํฌ์žฅํ•˜๋Š” ์ผ์„ ํ•ฉ๋‹ˆ๋‹ค. ํ•จ๊ป˜ ์ผ์„ ํ•˜๋Š” ๋‹ค๋ฅธ ์ง์›๋“ค์ด ํ–„๋ฒ„๊ฑฐ์— ๋“ค์–ด๊ฐˆ ์žฌ๋ฃŒ๋ฅผ ์กฐ๋ฆฌํ•ด ์ฃผ๋ฉด ์กฐ๋ฆฌ๋œ ์ˆœ์„œ๋Œ€๋กœ ์ƒ์ˆ˜์˜ ์•ž์— ์•„๋ž˜์„œ๋ถ€ํ„ฐ ์œ„๋กœ ์Œ“์ด๊ฒŒ ๋˜๊ณ , ์ƒ์ˆ˜๋Š” ์ˆœ์„œ์— ๋งž๊ฒŒ ์Œ“์—ฌ์„œ ์™„์„ฑ๋œ ํ–„๋ฒ„๊ฑฐ๋ฅผ ๋”ฐ๋กœ ์˜ฎ๊ฒจ ํฌ์žฅ์„ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ƒ์ˆ˜๊ฐ€ ์ผํ•˜๋Š” ๊ฐ€๊ฒŒ๋Š” ์ •ํ•ด์ง„ ์ˆœ์„œ(์•„๋ž˜์„œ๋ถ€ํ„ฐ, ๋นต โ€“ ์•ผ์ฑ„ โ€“ ๊ณ ๊ธฐ - ๋นต)๋กœ ์Œ“์ธ ํ–„๋ฒ„๊ฑฐ๋งŒ ํฌ์žฅ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ƒ์ˆ˜๋Š” ์†์ด ๊ต‰์žฅํžˆ ๋น ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์ƒ์ˆ˜๊ฐ€ ํฌ์žฅํ•˜๋Š” ๋™์•ˆ ์† ์žฌ๋ฃŒ๊ฐ€ ์ถ”๊ฐ€์ ์œผ๋กœ ๋“ค์–ด์˜ค๋Š” ์ผ์€ ์—†์œผ๋ฉฐ, ์žฌ๋ฃŒ์˜ ๋†’์ด๋Š” ๋ฌด์‹œํ•˜์—ฌ ์žฌ๋ฃŒ๊ฐ€ ๋†’์ด ์Œ“์—ฌ์„œ ์ผ์ด ํž˜๋“ค์–ด์ง€๋Š” ๊ฒฝ์šฐ๋Š” ์—†์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์ƒ์ˆ˜์˜ ์•ž์— ์Œ“์ด๋Š” ์žฌ๋ฃŒ์˜ ์ˆœ์„œ๊ฐ€ [์•ผ์ฑ„, ๋นต, ๋นต, ์•ผ์ฑ„, ๊ณ ๊ธฐ, ๋นต, ์•ผ์ฑ„, ๊ณ ๊ธฐ, ๋นต]์ผ ๋•Œ, ์ƒ์ˆ˜๋Š” ์—ฌ์„ฏ ๋ฒˆ์งธ ์žฌ๋ฃŒ๊ฐ€ ์Œ“์˜€์„ ๋•Œ, ์„ธ ๋ฒˆ์งธ ์žฌ๋ฃŒ๋ถ€ํ„ฐ ์—ฌ์„ฏ ๋ฒˆ์งธ ์žฌ๋ฃŒ๋ฅผ ์ด์šฉํ•˜์—ฌ ํ–„๋ฒ„๊ฑฐ๋ฅผ ํฌ์žฅํ•˜๊ณ , ์•„ํ™‰ ๋ฒˆ์งธ ์žฌ๋ฃŒ๊ฐ€ ์Œ“์˜€์„ ๋•Œ, ๋‘ ๋ฒˆ์งธ ์žฌ๋ฃŒ์™€ ์ผ๊ณฑ ๋ฒˆ์งธ ์žฌ๋ฃŒ๋ถ€ํ„ฐ ์•„ํ™‰ ๋ฒˆ์งธ ์žฌ๋ฃŒ๋ฅผ ์ด์šฉํ•˜์—ฌ ํ–„๋ฒ„๊ฑฐ๋ฅผ ํฌ์žฅํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, 2๊ฐœ์˜ ํ–„๋ฒ„๊ฑฐ๋ฅผ ํฌ์žฅํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ƒ์ˆ˜์—๊ฒŒ ์ „ํ•ด์ง€๋Š” ์žฌ๋ฃŒ์˜ ์ •๋ณด๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜ ๋ฐฐ์—ด ingredient๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ƒ์ˆ˜๊ฐ€ ํฌ์žฅํ•˜๋Š” ํ–„๋ฒ„๊ฑฐ์˜ ๊ฐœ์ˆ˜๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•˜์‹œ์˜ค.

์ œํ•œ์‚ฌํ•ญ

1 โ‰ค ingredient์˜ ๊ธธ์ด โ‰ค 1,000,000
ingredient์˜ ์›์†Œ๋Š” 1, 2, 3 ์ค‘ ํ•˜๋‚˜์˜ ๊ฐ’์ด๋ฉฐ, ์ˆœ์„œ๋Œ€๋กœ ๋นต, ์•ผ์ฑ„, ๊ณ ๊ธฐ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

ingredientresult
[2, 1, 1, 2, 3, 1, 2, 3, 1]2
[1, 3, 2, 1, 2, 1, 3, 1, 2]0

ํ’€์ด

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ฒ˜์Œ์—๋Š” 2์ค‘ ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ–ˆ์œผ๋‚˜, ๋” ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•์„ ์ฐพ๊ธฐ ์œ„ํ•ด ๊ณ ๋ฏผํ•ด๋ณธ ๊ฒฐ๊ณผ ์Šคํƒ์„ ํ™œ์šฉํ•œ ๋ฐฉ๋ฒ•์„ ๋– ์˜ฌ๋ž๋‹ค.

function solution(ingredient) {
    var answer = 0;
    // ํ–„๋ฒ„๊ฑฐ
    const hamburger = "1231";
    // ์Šคํƒ
    const arr = [];
    
    for (let i = 0; i < ingredient.length; i++) {
        arr.push(ingredient[i]);
        // ์Šคํƒ์˜ ๊ธธ์ด๊ฐ€ 4๊ฐ€ ๋„˜์–ด๊ฐ€๋ฉด
        if (arr.length >= 4) {
            // ํ–„๋ฒ„๊ฑฐ์ธ๊ฐ€??? : arr ๋ฐฐ์—ด ๋’ค์—์„œ 4๊ฐœ๋ฅผ ํ•ฉ์ณ ํ–„๋ฒ„๊ฑฐ์™€ ๊ฐ™์€์ง€
            const isHamburger = arr.slice(-4).join("") === hamburger;
            // ํ–„๋ฒ„๊ฑฐ์ด๋ฉด ๋’ค์—์„œ arr ๋ฐฐ์—ด ๋’ค์—์„œ 4๊ฐœ ์ž๋ฅด๊ณ  answer + 1
            if (isHamburger) {
                arr.splice(-4, 4);
                answer++;
            }
        }
    }
    
    return answer;
}

๋А๋‚€์  ๐Ÿ˜บ

์ž‘๋…„์— ํ’€์–ด๋ดค๋˜ ๋ฌธ์ œ์˜€๋Š”๋ฐ ์˜ค๋žœ๋งŒ์— ํ‘ธ๋‹ˆ๊น ์–ด๋ ค์› ๋‹ค. ์—ญ์‹œ ๋ญ๋“  ๊พธ์ค€ํžˆ ํ•ด์•ผ ํ•œ๋‹ค. ๋‚ด์ผ๋ถ€ํ„ฐ๋Š” ๊ทธ๋ฆผ์„ ๊ทธ๋ ค๊ฐ€๋ฉด์„œ ํ’€์–ด์•ผ๊ฒ ๋‹ค.

profile
laonlaon

2๊ฐœ์˜ ๋Œ“๊ธ€

comment-user-thumbnail
2024๋…„ 8์›” 12์ผ

ํ–„๋ฒ„๊ฑฐ๋Š” ๋น…๋งฅ์ด์ง€!

1๊ฐœ์˜ ๋‹ต๊ธ€