From a8e4eeaa055a8ff67afb9baf07f4b823226d0dc0 Mon Sep 17 00:00:00 2001 From: olive-su <1466su@gmail.com> Date: Sun, 10 Dec 2023 21:33:06 +0900 Subject: [PATCH] =?UTF-8?q?post:=20[8=EC=A3=BC=EC=B0=A8=5F=EA=B9=80?= =?UTF-8?q?=EC=88=98=EA=B2=BD]=20=EC=95=8C=EA=B3=A0=EB=A6=AC=EC=A6=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...4-\353\254\270\354\236\220\354\227\264.md" | 36 ++++++++++ ...4\354\233\220-\354\235\270\354\233\220.md" | 65 +++++++++++++++++++ 2 files changed, 101 insertions(+) create mode 100644 "_posts/algorithm/\352\263\265\355\206\265-\353\266\200\353\266\204-\353\254\270\354\236\220\354\227\264/2023-12-10-\352\271\200\354\210\230\352\262\275-\352\263\265\355\206\265-\353\266\200\353\266\204-\353\254\270\354\236\220\354\227\264.md" create mode 100644 "_posts/algorithm/\354\203\201\353\213\264\354\233\220-\354\235\270\354\233\220/2023-12-10-\352\271\200\354\210\230\352\262\275-\354\203\201\353\213\264\354\233\220-\354\235\270\354\233\220.md" diff --git "a/_posts/algorithm/\352\263\265\355\206\265-\353\266\200\353\266\204-\353\254\270\354\236\220\354\227\264/2023-12-10-\352\271\200\354\210\230\352\262\275-\352\263\265\355\206\265-\353\266\200\353\266\204-\353\254\270\354\236\220\354\227\264.md" "b/_posts/algorithm/\352\263\265\355\206\265-\353\266\200\353\266\204-\353\254\270\354\236\220\354\227\264/2023-12-10-\352\271\200\354\210\230\352\262\275-\352\263\265\355\206\265-\353\266\200\353\266\204-\353\254\270\354\236\220\354\227\264.md" new file mode 100644 index 0000000..4762aad --- /dev/null +++ "b/_posts/algorithm/\352\263\265\355\206\265-\353\266\200\353\266\204-\353\254\270\354\236\220\354\227\264/2023-12-10-\352\271\200\354\210\230\352\262\275-\352\263\265\355\206\265-\353\266\200\353\266\204-\353\254\270\354\236\220\354\227\264.md" @@ -0,0 +1,36 @@ +--- +title: ๐Ÿฃ ๊ณตํ†ต ๋ถ€๋ถ„ ๋ฌธ์ž์—ด +author: olive-su +date: 2023-12-10 20:00:00 +09:00 +categories: [์•Œ๊ณ ๋ฆฌ์ฆ˜, ๊ณตํ†ต ๋ถ€๋ถ„ ๋ฌธ์ž์—ด] +tags: [์•Œ๊ณ ๋ฆฌ์ฆ˜, ๋ฐฑ์ค€, ๊ณจ๋“œ5, DP, 8์ฃผ์ฐจ, ๊น€์ˆ˜๊ฒฝ] +render_with_liquid: false +--- + +## 1. ๋ฌธ์ œ ๋งํฌ + +[๊ณตํ†ต ๋ถ€๋ถ„ ๋ฌธ์ž์—ด](https://www.acmicpc.net/problem/5582) + +
+ +## 2. ์ฝ”๋“œ + +```python +import sys + +input = sys.stdin.readline +fir_str = input().rstrip() +sec_str = input().rstrip() + +dp = [[0 for _ in range(len(fir_str) + 1)] for _ in range(len(sec_str) + 1)] + +for i in range(len(sec_str)): + for j in range(len(fir_str)): + if sec_str[i] == fir_str[j]: + dp[i + 1][j + 1] = dp[i][j] + 1 + +answer = 0 +for d in dp: + answer = max(answer, max(d)) +print(answer) +``` diff --git "a/_posts/algorithm/\354\203\201\353\213\264\354\233\220-\354\235\270\354\233\220/2023-12-10-\352\271\200\354\210\230\352\262\275-\354\203\201\353\213\264\354\233\220-\354\235\270\354\233\220.md" "b/_posts/algorithm/\354\203\201\353\213\264\354\233\220-\354\235\270\354\233\220/2023-12-10-\352\271\200\354\210\230\352\262\275-\354\203\201\353\213\264\354\233\220-\354\235\270\354\233\220.md" new file mode 100644 index 0000000..b3518be --- /dev/null +++ "b/_posts/algorithm/\354\203\201\353\213\264\354\233\220-\354\235\270\354\233\220/2023-12-10-\352\271\200\354\210\230\352\262\275-\354\203\201\353\213\264\354\233\220-\354\235\270\354\233\220.md" @@ -0,0 +1,65 @@ +--- +title: ๐Ÿฃ ์ƒ๋‹ด์› ์ธ์› +author: olive-su +date: 2023-12-10 20:00:00 +09:00 +categories: [์•Œ๊ณ ๋ฆฌ์ฆ˜, ์ƒ๋‹ด์› ์ธ์›] +tags: [์•Œ๊ณ ๋ฆฌ์ฆ˜, ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค, level2, ์™„์ „ํƒ์ƒ‰, 8์ฃผ์ฐจ, ๊น€์ˆ˜๊ฒฝ] +render_with_liquid: false +--- + +## 1. ๋ฌธ์ œ ๋งํฌ + +[์ƒ๋‹ด์› ์ธ์›](https://school.programmers.co.kr/learn/courses/30/lessons/214288) + +
+ +## 2. ์ฝ”๋“œ + +```python +# FIFO +# ๊ฐ ๋ฉ˜ํ† ๋‹น ๋๋‚˜๋Š” ์‹œ๊ฐ„ ๊ธฐ๋ก +# ๋๋‚˜๋Š” ์‹œ๊ฐ„์ด ๋” ๋น ๋ฅธ ๋ฉ˜ํ† ์—๊ฒŒ ์ƒ๋‹ด ์ง„ํ–‰ +# ์šฐ์„  ๋ฉ˜ํ†  ํ•œ๋ช…์”ฉ ๋ฐฐ์ •ํ•˜๊ณ  ์ดํ›„, ๊ธฐ๋‹ค๋ฆฌ๋Š” ์‹œ๊ฐ„์ด ๊ฐ€์žฅ ๊ธด ํŒ€์—๊ฒŒ ๋ฉ˜ํ†  ์ถ”๊ฐ€ ๋ฐฐ์ • + +def min_time(start_time, end_time, group_queue): + wait_time = 0 + min_v = int(1e9) + target_idx = 0 + + for i in range(len(group_queue)): + if group_queue[i] <= start_time: + target_idx = i + min_v = 0 + break + # ์‹œ๊ฐ„์ฐจ๊ฐ€ ์ตœ์†Œ๊ฐ€ ๋˜๋Š” ๊ฐ’ ์ฐพ๊ธฐ + if min_v > group_queue[i] - start_time: + target_idx = i + min_v = group_queue[i] - start_time + + group_queue[target_idx] = max(start_time, group_queue[target_idx]) + end_time # ๋๋‚˜๋Š” ์‹œ๊ฐ„์œผ๋กœ ๋ฐ”๊ฟ”์คŒ + wait_time = min_v + + return wait_time, group_queue + + +def solution(k, n, reqs): + answer = 0 + wait_queue = [[0] for _ in range(k + 1)] + n = n - k + + while n >= 0: + wait_time = [0] * (k + 1) # ๊ฐ ๊ทธ๋ฃน๋ณ„๋กœ ๊ธฐ๋‹ค๋ ค์•ผ ํ•˜๋Š” ์‹œ๊ฐ„ ์ดํ•ฉ + for start, end, g in reqs: + t, q = min_time(start, end, wait_queue[g]) + wait_time[g] += t + wait_queue[g] = q + + max_time = max(wait_time) # ๊ฐ ๊ทธ๋ฃน ์ค‘ ์ตœ๋Œ€๋กœ ๊ธฐ๋‹ค๋ ค์•ผํ•˜๋Š” ๊ทธ๋ฃน์˜ ์‹œ๊ฐ„ + wait_queue[wait_time.index(max_time)].append(0) + n -= 1 + for i in range(k + 1): + wait_queue[i] = len(wait_queue[i]) * [0] + + answer = sum(wait_time) + return answer +```