glowing713
Frontend-Deep-Dive
glowing713
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (97)
    • Languages (11)
      • JavaScript ๐Ÿ’› (3)
      • Python ๐Ÿ (4)
      • Java โ˜•๏ธ (3)
      • Swift ๐Ÿงก (1)
    • Computer_Science (1)
      • Computer_Network ๐Ÿ•ธ (1)
    • Web_Frontend (4)
      • Vue.js (1)
    • Problem_Solving (76)
    • Server (1)
      • Spring ๐Ÿ€ (1)
    • AI (2)
      • NLP ๐Ÿ—ฃ (1)
      • AI_Math โž— (1)
    • ๊ฐœ๋ฐœํ™˜๊ฒฝ ๊พธ๋ฏธ๊ธฐ โœŒ (1)
    • ์ƒ๊ฐ์ •๋ฆฌ โœ๐Ÿป (1)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ๐Ÿง‘๐Ÿปโ€๐Ÿ’ปGithub

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
  • ps
  • Baekjoon
  • Python
  • boostcampaitech
  • ์ด๋ถ„ํƒ์ƒ‰
  • BOJ
  • binary search
  • brute-force
  • Algorithm
  • Java
  • c++
  • ์นด์นด์˜ค ๊ธฐ์ถœ
  • mst
  • DP
  • ์™„์ „ํƒ์ƒ‰
  • 2019 ์นด์นด์˜ค ๊ฐœ๋ฐœ์ž ๊ฒจ์šธ ์ธํ„ด์‹ญ
  • ๋™์ ๊ณ„ํš๋ฒ•
  • bfs
  • Stack

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
glowing713

Frontend-Deep-Dive

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋‹ค๋ฆฌ๋ฅผ ์ง€๋‚˜๋Š” ํŠธ๋Ÿญ / ํ(Queue)
Problem_Solving

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋‹ค๋ฆฌ๋ฅผ ์ง€๋‚˜๋Š” ํŠธ๋Ÿญ / ํ(Queue)

2021. 3. 12. 16:50

์ด๋ฏธ์ง€๋ฅผ ํด๋ฆญํ•˜๋ฉด ๋ฌธ์ œ ์‚ฌ์ดํŠธ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

 

 

 

๐Ÿ’ญ ๋ฌธ์ œ ์ดํ•ด

 

ํŠธ๋Ÿญ์ด ์ˆœ์„œ๋Œ€๋กœ ๋Œ€๊ธฐํ•˜๊ณ  ์žˆ๊ณ ,

๋‹ค๋ฆฌ๊ฐ€ ๊ฒฌ๋”œ ์ˆ˜ ์žˆ๋Š” ๋ฌด๊ฒŒ ๋‚ด์—์„œ ์ตœ๋Œ€ํ•œ ๋น ๋ฅด๊ฒŒ ๋ชจ๋“  ํŠธ๋Ÿญ์ด ํ†ต๊ณผํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

 

ํŠธ๋Ÿญ๋“ค์ด ๋Œ€๊ธฐํ•˜๋‹ค๊ฐ€ ์ˆœ์„œ๋Œ€๋กœ ์ง€๋‚˜๊ฐ€๊ณ , ๋‹ค๋ฆฌ ๋˜ํ•œ ํ•œ ๋ฐฉํ–ฅ์œผ๋กœ ์ง€๋‚˜๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— Queue๊ฐ€ ๋– ์˜ฌ๋ž๋‹ค.

 

ํŠธ๋Ÿญ์ด ์ง€๋‚˜๊ฐ€๋Š” ๋‹ค๋ฆฌ๋ฅผ bridge๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ queue(deque ์‚ฌ์šฉ)๋ฅผ ์„ ์–ธํ•˜๊ณ 

๋Œ€๊ธฐ ์ค‘์ธ ํŠธ๋Ÿญ๋“ค์„ waiting์ด๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ queue๋ฅผ ์„ ์–ธํ–ˆ๋‹ค.

 

๋Œ€๋žต์ ์ธ ์ฝ”๋“œ ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

0. 0์ดˆ๋ถ€ํ„ฐ 1์ดˆ ์”ฉ ์ฆ๊ฐ€ํ•˜๋ฉฐ ์‹œ๊ฐ„์„ ๊ธฐ๋กํ•œ๋‹ค.

1. bridge๊ฐ€ ๋น„์–ด์žˆ์ง€ ์•Š๋‹ค๋ฉด ์ง€๊ธˆ ์‹œ์ ์— ์ง€๋‚˜๊ฐ€์•ผํ•˜๋Š” ํŠธ๋Ÿญ์€ dequeue ์‹œํ‚จ๋‹ค. (๋‹ค๋ฆฌ๋ฅผ ๋น ์ ธ๋‚˜๊ฐ„๋‹ค.)

2. bridge์™€ waiting์— ๋‚จ์€ ํŠธ๋Ÿญ์ด ์—†๋‹ค๋ฉด ํ˜„์žฌ ์‹œ๊ฐ„์„ ๋ฆฌํ„ดํ•จ์œผ๋กœ ๋ฐ˜๋ณต๋ฌธ์„ ์ข…๋ฃŒ์‹œํ‚จ๋‹ค. (๋ชจ๋“  ์ฐจ๋Ÿ‰์„ ์ฒ˜๋ฆฌํ•œ ๊ฒฝ์šฐ)

3. ๋Œ€๊ธฐ์ค‘์ธ ์ฐจ๋Ÿ‰์ด ์กด์žฌํ•œ๋‹ค๋ฉด ๋‹ค๋ฆฌ์˜ ์ด ๋ฌด๊ฒŒ๋ฅผ ์ฒดํฌํ•ด๋ณด๊ณ  ํ˜„์žฌ ์‹œ์  ๊ธฐ๋ก๊ณผ ํ•จ๊ป˜ bridge์— ์ง„์ž…์‹œํ‚จ๋‹ค.

    (tuple(๋ฌด๊ฒŒ, ์‹œ๊ฐ„)์„ bridge์— enqueue ์‹œํ‚ค๋Š” ๊ฒƒ)

 

 

 

 

๊ตฌํ˜„ ์–ธ์–ด: Python

 

from collections import deque


def solution(bridge_length, weight, truck_weights):
    time = 0
    weight_sum = 0
    bridge, waiting = deque(), deque(truck_weights)
    
    while True:
        time += 1
        # ์ฒดํฌํ•˜๋ฉด์„œ ์ด๋ฒˆ ํƒ€์ž„์— ๋‚˜๊ฐ€์•ผํ•  ํŠธ๋Ÿญ์„ ๋‚ด๋ณด๋‚ธ๋‹ค.
        if bridge:  # ๋‹ค๋ฆฌ๊ฐ€ ๋น„์–ด์žˆ์ง€ ์•Š์€ ์ƒํƒœ์ผ ๋•Œ
            if time == bridge[0][1] + bridge_length:
                weight_sum -= bridge[0][0]
                bridge.popleft()
        # ๋ชจ๋“  ์ฐจ๋ฅผ ์ฒ˜๋ฆฌํ–ˆ๋‹ค๋ฉด ์ข…๋ฃŒ
        if (not bridge) and (not waiting):
            return time
        # ๋‹ค๋ฆฌ๊ฐ€ ๊ฒฌ๋”œ ์ˆ˜ ์žˆ๋Š” ๋ฌด๊ฒŒ์— ํ•œํ•˜์—ฌ ์ถ”๊ฐ€ํ•  ์ฐจ๋Ÿ‰์„ ์ถ”๊ฐ€ํ•œ๋‹ค.
        if waiting:
            if weight_sum + waiting[0] <= weight:
                bridge.append((waiting[0], time))  # ํ˜„์žฌ ์‹œ์  ๊ธฐ๋ก๊ณผ ํ•จ๊ป˜ ๋‹ค๋ฆฌ์— ์ง„์ž…
                weight_sum += waiting[0]  # ๋‹ค๋ฆฌ์˜ ์ด ๋ฌด๊ฒŒ ๊ฐฑ์‹ 
                waiting.popleft()  # ๋Œ€๊ธฐ์—ด์—์„œ ์ œ๊ฑฐ
    return time
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'Problem_Solving' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์นดํŽซ / ์™„์ „ ํƒ์ƒ‰(Brute-force Search)  (0) 2021.03.18
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์†Œ์ˆ˜ ์ฐพ๊ธฐ / ์™„์ „ ํƒ์ƒ‰(Brute-force Search)  (0) 2021.03.17
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๊ฐ€์žฅ ํฐ ์ˆ˜ / ์ •๋ ฌ  (0) 2021.03.11
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋„๋‘‘์งˆ / ๋™์  ๊ณ„ํš๋ฒ•(Dynamic-Programming)  (0) 2021.03.11
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋“ฑ๊ตฃ๊ธธ / ๋™์  ๊ณ„ํš๋ฒ•(Dynamic-Programming)  (0) 2021.03.11
    'Problem_Solving' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์นดํŽซ / ์™„์ „ ํƒ์ƒ‰(Brute-force Search)
    • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์†Œ์ˆ˜ ์ฐพ๊ธฐ / ์™„์ „ ํƒ์ƒ‰(Brute-force Search)
    • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๊ฐ€์žฅ ํฐ ์ˆ˜ / ์ •๋ ฌ
    • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋„๋‘‘์งˆ / ๋™์  ๊ณ„ํš๋ฒ•(Dynamic-Programming)
    glowing713
    glowing713

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”