๐Ÿ“Œ ํŒŒ์ด์ฌ ์œผ๋กœ ํ’€์ด

 

๐Ÿ“Œ ๋ฌธ์ œ ๋งํฌ :

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

๐Ÿ“Œ ๋ฌธ์ œ ์„ค๋ช… :

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

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

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

 

 

๐Ÿ“Œ ์ œํ•œ ์‚ฌํ•ญ

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

 

๐Ÿ“Œ ์ž…์ถœ๋ ฅ ์˜ˆ


์ถ”์ธก) 

* ์ˆœ์„œ๊ฐ€ [๋นต(1), ์•ผ์ฑ„(2), ๊ณ ๊ธฐ(3), ๋นต(1)] ์ธ๋ฐ, ์žฌ๋ฃŒ๊ฐ€ ์•ž์„  ์ˆœ์„œ ๋ณด๋‹ค๋„ ์—ฐ์†์ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ ๊ฒฝ์šฐ๊ฐ€ ์šฐ์„ ์ ์œผ๋กœ ํฌ์žฅ๋จ.

- ์–ด์ฐจํ”ผ ๋ฐ˜ํ™˜๋˜๋Š” ๊ฐ’์€ ๊ฐœ์ˆ˜๋ผ ์—ฐ์†์ ์ธ ๊ฑธ ์šฐ์„ ์‹œ ์•ˆํ•ด๋„ ์ƒ๊ด€์—†์ง€ ์•Š์„ ๊นŒ ์‹ถ์ง€๋งŒ, ์˜ˆ์‹œ๋กœ ์—ฐ์†์ ์ธ ๊ฑธ ์šฐ์„ ์‹œ ํ•œ ์ด์œ ๊ฐ€ ์žˆ์„ ๊ฑฐ ๊ฐ™๋‹ค. 

 

* 2์ฐจ์› ๋ฐฐ์—ด๋กœ?

 

* [2, 1, 1, 2, 3, 1, 2, 3, 1] ๊ฒฝ์šฐ

- Queue๋กœ ํ•ด์„œ ์•ž๋ถ€ํ„ฐ ๋นผ์™€ ์ •๋ ฌ (X - ์—ฐ์†๋˜๋Š” ๊ฑธ ์šฐ์„ ์‹œ ํ•  ์ˆ˜ ์—†์Œ

- [1,2,3,1] ๋ฐฐ์—ด ์ผ์น˜ํ•˜๋Š” ์ง€ ํ™•์ธํ•ด์„œ cnt ์˜ฌ๋ฆฌ๊ธฐ

ex) [[1, 2, 3, 1],[1, 2, 3, 1],[2, 0, 0, 0]]

 

 

์†Œ์Šค์ฝ”๋“œ) 

* 1์ฐจ) ์‹คํŒจ :  44.4์  ์‹œ๊ฐ„์ดˆ๊ณผ

def solution(ingredient):
    burger = [1, 2, 3, 1]
    flag = 1
    i = 0
    cnt = 0

    while flag == 1:
        if ingredient[i: i + 4] == burger:
            del ingredient[i: i + 4]
            cnt += 1
            i = 0

        else:
            i += 1
            if len(ingredient) < len(burger):
                flag = 0
            if i > (len(ingredient)-3) and cnt == 0 :
                flag = 0

    return cnt

* 2์ฐจ) ์Šคํƒ์œผ๋กœ ํ’€๊ธฐ : 88.8์  ์‹œ๊ฐ„์ดˆ๊ณผ 2๊ฐœ

def solution(ingredient):
    burger = [1, 2, 3, 1]
    cnt = 0

    stack = []
    for one in ingredient :
        stack.append(one)
        length = len(stack)
        if length >= 4 :
            if stack[length-4: length] == burger :
                stack = stack[:length-4]
                cnt += 1

    return cnt

* 3์ฐจ) ์Šคํƒ pop์œผ๋กœ ๋งˆ์ง€๋ง‰ 4๊ฐœ ๋นผ๋‹ˆ๊นŒ ์‹œ๊ฐ„์ดˆ๊ณผ ์‚ฌ๋ผ์ง

def hamburger(ingredient):
    burger = [1, 2, 3, 1]
    cnt = 0

    stack = []
    for one in ingredient :
        stack.append(one)
        length = len(stack)
        if length >= 4 :
            if stack[length-4: length] == burger :
                stack.pop()
                stack.pop()
                stack.pop()
                stack.pop()
                cnt += 1

    print(cnt)

 

๋ฆฌ๋ทฐ) 

์—ฌ๋Ÿฌ๋ชจ๋กœ ์ž๋ฃŒ๊ตฌ์กฐ์— ์ž˜ ์•Œ์•„์•ผ ํ’€ ์ˆ˜ ์žˆ์—ˆ๋˜ ๋ฌธ์ œ์˜€๋‹ค. ์Šคํƒ์„ ์–ธ์ œ ์จ์•ผํ•  ์ง€ ๋ฐ”๋กœ ์•Œ ์ˆ˜ ์žˆ๊ฒŒ ๋ฌธ์ œ๋ฅผ ๋งŽ์ด ํ’€์–ด๋ด์•ผ๊ฒ ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋งˆ์ง€๋ง‰! ์•„๋‹ˆ.. ์Šฌ๋ผ์ด์‹ฑ๋ณด๋‹ค pop์ด ํ›จ์”ฌ ๋น ๋ฅด๊ตฌ๋‚˜.... ๊ทธ๋ ‡๊ตฌ๋‚˜... ๋งŽ์€ ๊ฒƒ์„ ๋ฐฐ์šด ๋ฌธ์ œ

+ Recent posts