ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๋‹ค๋ฆฌ๋ฅผ ์ง€๋‚˜๋Š” ํŠธ๋Ÿญ

ํŠธ๋Ÿญ ์—ฌ๋Ÿฌ ๋Œ€๊ฐ€ ๊ฐ•์„ ๊ฐ€๋กœ์ง€๋ฅด๋Š” ์ผ ์ฐจ์„  ๋‹ค๋ฆฌ๋ฅผ ์ •ํ•ด์ง„ ์ˆœ์œผ๋กœ ๊ฑด๋„ˆ๋ ค ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ํŠธ๋Ÿญ์ด ๋‹ค๋ฆฌ๋ฅผ ๊ฑด๋„ˆ๋ ค๋ฉด ์ตœ์†Œ ๋ช‡ ์ดˆ๊ฐ€ ๊ฑธ๋ฆฌ๋Š”์ง€ ์•Œ์•„๋‚ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํŠธ๋Ÿญ์€ 1์ดˆ์— 1๋งŒํผ ์›€์ง์ด๋ฉฐ, ๋‹ค๋ฆฌ ๊ธธ์ด๏ฟฝ๏ฟฝ

programmers.co.kr

 

๋ฌธ์ œ ํ’€์ด

 ํŠธ๋Ÿญ ์—ฌ๋Ÿฌ ๋Œ€๊ฐ€ ๊ฐ•์„ ๊ฐ€๋กœ์ง€๋ฅด๋Š” ์ผ ์ฐจ์„  ๋‹ค๋ฆฌ๋ฅผ ์ •ํ•ด์ค€ ์ˆœ์œผ๋กœ ๊ฑด๋„ˆ๋ ค๊ณ  ํ•  ๋•Œ, ๋‹ค๋ฆฌ์— ์˜ฌ๋ผ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๋ฌด๊ฒŒ ์ œํ•œ์ด ์žˆ๋‹ค. ํŠธ๋Ÿญ์€ 1์ดˆ์— ๋‹ค๋ฆฌ ํ•œ ์นธ์„ ์ง€๋‚˜๊ฐˆ ๋•Œ, ๋ชจ๋“  ํŠธ๋Ÿญ์ด ๋‹ค๋ฆฌ๋ฅผ ๊ฑด๋„ˆ๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋กœ์ง์„ ์ž‘์„ฑํ•˜๋ฉด ๋œ๋‹ค.

 

  • q์— ์ดˆ๊ธฐ ๊ฐ’์„ 0์œผ๋กœ ๋‹ค๋ฆฌ ๊ธธ์ด๋งŒํผ ์ฑ„์šด๋‹ค.
  • ๋‹ค๋ฆฌ์— ์˜ฌ๋ผ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ํŠธ๋Ÿญ์„ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•ด, ํ˜„์žฌ ๋‹ค๋ฆฌ์˜ ๋ฌด๊ฒŒ๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.
  • ์ฒซ ํŠธ๋Ÿญ๋ถ€ํ„ฐ ๋‹ค๋ฆฌ ์œ„์— ์˜ฌ๋ผ๊ฐˆ ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ , ์˜ฌ๋ผ๊ฐˆ ์ˆ˜ ์žˆ๋‹ค๋ฉด ํ•ด๋‹น ํŠธ๋Ÿญ์˜ ๋ฌด๊ฒŒ๋ฅผ ํ์— ์ถ”๊ฐ€ํ•œ๋‹ค.
    • ๋ฐ˜๋Œ€์˜ ๊ฒฝ์šฐ ํŠธ๋Ÿญ์˜ ๋ฌด๊ฒŒ๊ฐ€ ์•„๋‹Œ, 0์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์‹œ๊ฐ„์„ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.
  • Queue๊ฐ€ ๋นŒ ๋•Œ๊นŒ์ง€ ํ•ด๋‹น ์ž‘์—…์„ ๋ฐ˜๋ณตํ•˜๋ฉด, ๋ฌด๊ฒŒ์— ๋”ฐ๋ผ ๋ช‡ ์ดˆ์˜ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 

์ฝ”๋“œ

from collections import deque


def solution(bridge_length, weight, truck_weights):
    answer, bridge_weight = 0, 0
    truck_weights = truck_weights[::-1]
    q = deque([0] * bridge_length)

    while q:
        answer += 1
        bridge_weight -= q.popleft()
        if truck_weights:
            if bridge_weight + truck_weights[-1] <= weight:
                q.append(truck_weights.pop())
                bridge_weight += q[-1]
            else:
                q.append(0)
    return answer

 pop(0)๋ฅผ ํ•˜๋Š” ๊ฒƒ์ด pop()๋ณด๋‹ค ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ํฌ๊ธฐ์—, ํŠธ๋Ÿญ์˜ ๋ฌด๊ฒŒ๋ฅผ ๋ฐ˜์ „ ์‹œํ‚จ ํ›„ pop()์„ ์‚ฌ์šฉํ•˜์—ฌ ํŠธ๋Ÿญ์˜ ๋ฌด๊ฒŒ๋ฅผ ๊ฐ€์ ธ์˜ค๋„๋ก ํ•˜์˜€๋‹ค.

728x90
๋ฐ˜์‘ํ˜•
๋Œ“๊ธ€
๊ธ€ ๋ณด๊ด€ํ•จ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€