๐Ÿ˜Ž ๊ณต๋ถ€ํ•˜๋Š” ์ง•์ง•์•ŒํŒŒ์นด๋Š” ์ฒ˜์Œ์ด์ง€?

[Programmers] ๋‹ค๋ฆฌ๋ฅผ ์ง€๋‚˜๋Š” ํŠธ๋Ÿญ ๋ณธ๋ฌธ

๐Ÿฆฅ ์ฝ”ํ…Œ/Programmers

[Programmers] ๋‹ค๋ฆฌ๋ฅผ ์ง€๋‚˜๋Š” ํŠธ๋Ÿญ

์ง•์ง•์•ŒํŒŒ์นด 2023. 4. 14. 23:29
728x90
๋ฐ˜์‘ํ˜•
๋‹ค๋ฆฌ๋ฅผ ์ง€๋‚˜๋Š” ํŠธ๋Ÿญ
ํŠธ๋Ÿญ ์—ฌ๋Ÿฌ ๋Œ€๊ฐ€ ๊ฐ•์„ ๊ฐ€๋กœ์ง€๋ฅด๋Š” ์ผ์ฐจ์„  ๋‹ค๋ฆฌ๋ฅผ ์ •ํ•ด์ง„ ์ˆœ์œผ๋กœ ๊ฑด๋„ˆ๋ ค ํ•จ
๋ชจ๋“  ํŠธ๋Ÿญ์ด ๋‹ค๋ฆฌ๋ฅผ ๊ฑด๋„ˆ๋ ค๋ฉด ์ตœ์†Œ ๋ช‡ ์ดˆ๊ฐ€ ๊ฑธ๋ฆฌ๋Š”์ง€ ์•Œ์•„๋‚ด๊ธฐ
๋‹ค๋ฆฌ์—๋Š” ํŠธ๋Ÿญ์ด ์ตœ๋Œ€ bridge_length๋Œ€ ์˜ฌ๋ผ๊ฐˆ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋‹ค๋ฆฌ๋Š” weight ์ดํ•˜๊นŒ์ง€์˜ ๋ฌด๊ฒŒ๋ฅผ ๊ฒฌ๋”ค
  ๋‹ค๋ฆฌ์— ์™„์ „ํžˆ ์˜ค๋ฅด์ง€ ์•Š์€ ํŠธ๋Ÿญ์˜ ๋ฌด๊ฒŒ๋Š” ๋ฌด์‹œ
๋‹ค๋ฆฌ์— ์˜ฌ๋ผ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ํŠธ๋Ÿญ ์ˆ˜ bridge_length, ๋‹ค๋ฆฌ๊ฐ€ ๊ฒฌ๋”œ ์ˆ˜ ์žˆ๋Š” ๋ฌด๊ฒŒ weight, ํŠธ๋Ÿญ ๋ณ„ ๋ฌด๊ฒŒ truck_weights
๋ชจ๋“  ํŠธ๋Ÿญ์ด ๋‹ค๋ฆฌ๋ฅผ ๊ฑด๋„ˆ๋ ค๋ฉด ์ตœ์†Œ ๋ช‡ ์ดˆ๊ฐ€ ๊ฑธ๋ฆฌ๋Š”์ง€ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜
def solution(bridge_length, weight, truck_weights):
    time = 0
    # # ํŠธ๋Ÿญ ๋ฌด๊ฒŒ
    # truck = list(truck_weights) 
    # ๋‹ค๋ฆฌ ํŠธ๋Ÿญ ์ˆ˜
    bridge = [0] * bridge_length 
    # ๋‹ค๋ฆฌ ์œ„์˜ ์ด ํŠธ๋Ÿญ ๋ฌด๊ฒŒ
    temp = 0
    
    while (bridge):
        time += 1
        temp -= bridge.pop(0)
        if truck_weights:
            # ํŠธ๋Ÿญ ๋ฌด๊ฒŒ๊ฐ€ ๋‹ค๋ฆฌ ๋ฒ„ํ‹ฐ๋Š” ๋ฌด๊ฒŒ๋ณด๋‹ค ์ž‘์„ ๋•Œ (์—ฌ์œ )
            if ( temp + truck_weights[0] ) <= weight:
                temp += truck_weights[0]
                bridge.append(truck_weights.pop(0))
            else:
                bridge.append(0) # ์—ฌ์œ  ์—†์œผ๋ฉด ๋ฌด๊ฒŒ 0 ์ถ”๊ฐ€

    return time
728x90
๋ฐ˜์‘ํ˜•
Comments