[ 2023-05-26 ๐ŸŒด TIL ]

Burkeyยท2023๋…„ 5์›” 26์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
86/157

LV. 2 ๋‹ค๋ฆฌ๋ฅผ ์ง€๋‚˜๋Š” ํŠธ๋Ÿญ


๋ฌธ์ œ ๋งํฌ

def solution(bridge_length, weight, truck_weights):
    time = 0
    bridge = [0 for _ in range(bridge_length)]  
    # bridge์— ์ œํ•œ ์ˆ˜ ๋งŒํผ ์„ ์–ธ
    bridge_w = 0 # ํ˜„์žฌ ๋‹ค๋ฆฌ ์œ„์˜ ํŠธ๋Ÿญ ๋ฌด๊ฒŒ ์ธก์ • ํ•  ๋•Œ ์‚ฌ์šฉ
    while bridge:
        time += 1
        bridge_w -= bridge.pop(0) # 0์„ ๋„ฃ์–ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— - ๊ฐ€๋Šฅ
        if truck_weights:
          # ํŠธ๋Ÿญ์ด ๋‹ค ์ง€๋‚˜๊ฐ€๋ฉด ๋‚จ์€ bridge๋ฅผ ์ œ๊ฑฐ๋งŒ ํ•ด์ค€๋‹ค.
            if bridge_w + truck_weights[0] <= weight:
                # ๋‹ค์Œ ํŠธ๋Ÿญ์˜ ๋ฌด๊ฒŒ์™€ ํ˜„์žฌ ๋‹ค๋ฆฌ์œ„ ํŠธ๋Ÿญ๋“ค์˜ ๋ฌด๊ฒŒ ํ•ฉ์ด ์ œํ•œ์„ 
                # ๋„˜๋Š” ์ง€ ํ™•์ธ
                t = truck_weights.pop(0)
                bridge.append(t)  # ๋‹ค๋ฆฌ์— ํŠธ๋Ÿญ์„ ์ถ”๊ฐ€
                bridge_w += t
            else:
                bridge.append(0)  
                # ๋Œ€๊ธฐ ์ค‘์ธ ํŠธ๋Ÿญ์ด ์žˆ์œผ๋ฉด bridgeํฌ๊ธฐ๋ฅผ ์ œํ•œ ๊ธธ์ด๋งŒํผ ์œ ์ง€

    return time

๊ฒ€์ƒ‰์„ ํ†ตํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์˜€๋Š”๋ฐ ๋ฌด๊ฒŒ๋ฅผ ํ™•์ธํ•˜๋Š” ์กฐ๊ฑด์—์„œ
SUM์„ ์“ฐ๋ฉด ํ…Œ์ŠคํŠธ5๋ฒˆ์—์„œ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๊ฑธ๋ฆฌ๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋”ฐ๋กœ ๋ฌด๊ฒŒ๋ฅผ ์ธก์ •ํ•˜๋Š” ๋ณ€์ˆ˜๋ฅผ ๋‘์–ด์„œ ์กฐ๊ฑด์— ์ ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.

profile
์Šคํƒฏ ์˜ฌ๋ฆฌ๋Š” ์ค‘

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