๐Ÿ”์•Œ๊ณ ๋ฆฌ์ฆ˜

    [Python/ํŒŒ์ด์ฌ] ๋ฐฑ์ค€ 14002๋ฒˆ: ๊ฐ€์žฅ ๊ธด ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด 4

    ๋ฌธ์ œ ํ’€์ด ์ˆ˜์—ด์˜ ์ตœ๋Œ€ ํฌ๊ธฐ๊ฐ€ 1000์ด๋ฏ€๋กœ N2 ์œผ๋กœ ํ’€๋ฉด ๋œ๋‹ค. dp ๊ฐ’์„ ๊ฐฑ์‹ ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ๋™์ผํ•˜๊ฒŒ dp ์ˆ˜์—ด๋„ ๊ฐฑ์‹ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. (์•„๋ž˜ ์ฝ”๋“œ ์ฐธ๊ณ ) ์ฝ”๋“œ import sys input = sys.stdin.readline n = int(input()) arr = list(map(int, input().split())) dpMax = [0] * n dpArr = [[] for _ in range(n)] dpArr[0] = [arr[0]] maxIdx = 0 for i in range(1, n): for j in range(i - 1, -1, -1): if arr[i] > arr[j]: if dpMax[j] + 1 > dpMax[i]: dpMax[i] = dpMax[j] + 1 dpArr[i] = dp..

    [Python/ํŒŒ์ด์ฌ] ๋ฐฑ์ค€ 2263๋ฒˆ: ํŠธ๋ฆฌ์˜ ์ˆœํšŒ

    ๋ฌธ์ œ ํ’€์ด ์ค‘์œ„ ์ˆœํšŒ : 7 3 8 1 9 4 10 0 11 5 2 6 ํ›„์œ„ ์ˆœํšŒ : 7 8 3 9 10 4 1 11 5 6 2 0 ํ›„์œ„ ์ˆœํšŒ๋Š” ์ตœ์ƒ์œ„ ๋ฃจํŠธ๋ฅผ ๋งจ ๋งˆ์ง€๋ง‰์— ๋ฐฉ๋ฌธํ•˜๋ฉฐ, ์ค‘์œ„ ์ˆœํšŒ๋Š” ์™ผ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ, ๋ฃจํŠธ, ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ ์ˆœ์œผ๋กœ ๋ฐฉ๋ฌธํ•œ๋‹ค. ๋”ฐ๋ผ์„œ, ํ›„์œ„ ์ˆœํšŒ์˜ ๋งจ ๋งˆ์ง€๋ง‰ ์›์†Œ๋Š” ์ตœ์ƒ์œ„ ๋ฃจํŠธ์ด๋ฉฐ ์ด๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ค‘์œ„ ์ˆœํšŒ๋ฅผ ๋‚˜๋ˆ„๋ฉด, ์™ผ์ชฝ์€ ์™ผ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ, ์˜ค๋ฅธ์ชฝ์€ ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ์ž„์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์ค‘์œ„ ์ˆœํšŒ : 7 3 8 1 9 4 10 0 11 5 2 6 ํ›„์œ„ ์ˆœํšŒ : 7 8 3 9 10 4 1 11 5 6 2 0 ์ด๋•Œ ์ค‘์œ„ ์ˆœํšŒ์—์„œ ์™ผ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ์˜ ๋ฒ”์œ„๋Š” ์‹œ์ž‘ ์ธ๋ฑ์Šค ~ (์‹œ์ž‘ ์ธ๋ฑ์Šค + ์™ผ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ์˜ ๋…ธ๋“œ ์ˆ˜ - 1) ์ค‘์œ„ ์ˆœํšŒ์—์„œ ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ์˜ ๋ฒ”์œ„๋Š” (๋ ์ธ๋ฑ์Šค - ์˜ค..

    [Python/ํŒŒ์ด์ฌ] ๋ฐฑ์ค€ 9372๋ฒˆ: ์ƒ๊ทผ์ด์˜ ์—ฌํ–‰

    ๋ฌธ์ œ ํ’€์ด ๋ฌธ์ œ์—์„œ ์ฃผ์–ด์ง„ ์ •๋ณด๋ฅผ ์ž˜ ํ™œ์šฉํ•ด์•ผ ํ•œ๋‹ค. ์ฃผ์–ด์ง€๋Š” ๋น„ํ–‰ ์Šค์ผ€์ค„์€ ํ•ญ์ƒ ์—ฐ๊ฒฐ ๊ทธ๋ž˜ํ”„๋ฅผ ์ด๋ฃฌ๋‹ค. ๋”ฐ๋ผ์„œ ์•„๋ฌด ๋…ธ๋“œ๋‚˜ ์„ ํƒํ•ด๋„ ๊ทธ ๋…ธ๋“œ์—์„œ ๋ชจ๋“  ๋…ธ๋“œ๋กœ ๊ฐˆ ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•œ๋‹ค. (์•„๋ž˜ ๊ทธ๋ฆผ ์ฐธ๊ณ ) ๋˜ํ•œ ์—ฐ๊ฒฐ ๊ทธ๋ž˜ํ”„๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ„์„ ์˜ ์ตœ์†Œ ๊ฐœ์ˆ˜๋Š” (๋…ธ๋“œ์˜ ์ˆ˜ - 1)์ด๋‹ค. ์ด๋ฅผ ์‹ ์žฅ ํŠธ๋ฆฌ๋ผ ํ•œ๋‹ค. https://terms.naver.com/entry.naver?docId=837730&cid=42344&categoryId=42344 ์‹ ์žฅ ํŠธ๋ฆฌ ์—ฐ๊ฒฐ ๊ทธ๋ž˜ํ”„์˜ ๋ถ€๋ถ„ ๊ทธ๋ž˜ํ”„๋กœ์„œ ๊ทธ ๊ทธ๋ž˜ํ”„์˜ ๋ชจ๋“  ์ •์ ๊ณผ ๊ฐ„์„ ์˜ ๋ถ€๋ถ„ ์ง‘ํ•ฉ์œผ๋กœ ๊ตฌ์„ฑ๋˜๋Š” ํŠธ๋ฆฌ. ๋ชจ๋“  ๋…ธ๋“œ๋Š” ์ ์–ด๋„ ํ•˜๋‚˜์˜ ๊ฐ„์„ ์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. terms.naver.com ์ฆ‰, ๋น„ํ–‰๊ธฐ์˜ ์ข…๋ฅ˜ = ๊ฐ„์„  ์ˆ˜ ์—ฌํ–‰ ๊ฐˆ ๋‚˜๋ผ์˜ ์ˆ˜ = ๋…ธ๋“œ์˜ ์ˆ˜ ๊ฐ„์„ ์˜ ์ตœ์†Œ..

    [Python/ํŒŒ์ด์ฌ] ๋ฐฑ์ค€ 5639๋ฒˆ: ์ด์ง„ ๊ฒ€์ƒ‰ ํŠธ๋ฆฌ

    ๋ฌธ์ œ ํ’€์ด ์ „์œ„ ์ˆœํšŒํ•œ ๊ฒฐ๊ณผ 50 30 24 5 28 45 98 52 60 ์ฒซ ๋ฒˆ์งธ ์›์†Œ๊ฐ€ ๋ฃจํŠธ ๋…ธ๋“œ (์ „์œ„ ์ˆœํšŒ์˜ ์„ฑ์งˆ์— ์˜ํ•ด) ์™ผ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ = ๋ฃจํŠธ ๋…ธ๋“œ๋ณด๋‹ค ์ž‘์€ ์›์†Œ์ธ ๊ฒฝ์šฐ ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ = ๋ฃจํŠธ ๋…ธ๋“œ๋ณด๋‹ค ํฐ ์›์†Œ์˜ ๊ฒฝ์šฐ ์ „์œ„ ์ˆœํšŒ๋ฅผ ํ–ˆ์œผ๋ฏ€๋กœ ๋ฃจํŠธ ๋…ธ๋“œ๋ณด๋‹ค ํฐ ์›์†Œ๊ฐ€ ๋‚˜์˜ค๋Š” ์ง€์ ์ด ์™ผ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ์™€ ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ๋ฅผ ๋‚˜๋ˆ„๋Š” ์ง€์ ๊ณผ ๊ฐ™๋‹ค. 50 30 24 5 28 45 98 52 60 ์ดˆ๋ก = ๋ฃจํŠธ ๋…ธ๋“œ, ๋นจ๊ฐ• = ์™ผ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ, ํŒŒ๋ž‘ = ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ ์œ„ ๊ฒฐ๊ณผ๋ฅผ ํ™œ์šฉํ•ด ํ›„์œ„ ์ˆœํšŒ๋ฅผ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. ์ฝ”๋“œ import sys sys.setrecursionlimit(10 ** 9) input = sys.stdin.readline pre = [] while True: try: pre.appen..

    [Python/ํŒŒ์ด์ฌ] ๋ฐฑ์ค€ 1417๋ฒˆ: ๊ตญํšŒ์˜์› ์„ ๊ฑฐ

    ๋ฌธ์ œ ํ’€์ด ๊ธฐํ˜ธ 1๋ฒˆ์„ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ํ‘œ๋ฅผ ์ตœ๋Œ€ ํž™์— ๋„ฃ๋Š”๋‹ค. ํž™์„ pop()ํ–ˆ์„ ๋•Œ ๋‚˜์˜จ ํ›„๋ณด์˜ ํ‘œ๊ฐ€ ๊ธฐํ˜ธ 1๋ฒˆ์˜ ํ‘œ๋ณด๋‹ค ๋งŽ๋‹ค๋ฉด, ๊ทธ ํ›„๋ณด๋ฅผ ํ•œ๋ช… ๋งค์ˆ˜ํ•˜๊ณ  ๋‹ค์‹œ ํž™์— ๋„ฃ๋Š”๋‹ค. ์œ„ ๊ณผ์ •์„ ๊ธฐํ˜ธ 1๋ฒˆ์˜ ํ‘œ๊ฐ€ ์ œ์ผ ๋งŽ์„ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค. ์ฝ”๋“œ import sys, heapq input = sys.stdin.readline n = int(input()) win = int(input()) nums = [] for _ in range(n - 1): num = int(input()) heapq.heappush(nums, (-num, num)) cnt = 0 while nums: num = heapq.heappop(nums)[1] if num >= win: num -= 1 win += 1 cnt += 1 heapq...

    [Python/ํŒŒ์ด์ฌ] ๋ฐฑ์ค€ 11779๋ฒˆ: ์ตœ์†Œ๋น„์šฉ ๊ตฌํ•˜๊ธฐ 2

    ๋ฌธ์ œ ํ’€์ด ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋˜, ์ตœ๋‹จ๊ฒฝ๋กœ ๊ฐ’์ด ๊ฐฑ์‹ ๋  ๋•Œ ๊ทธ๋•Œ์˜ ๋…ธ๋“œ ๊ฐ’๋„ ํ•จ๊ป˜ ๊ธฐ๋กํ•œ๋‹ค. ์‹œ์ž‘ ๋…ธ๋“œ๊ฐ€ 1๋ฒˆ ์ผ ๋•Œ, 1. ์ดˆ๊ธฐ๊ฐ’ distance : 1๋ฒˆ ๋…ธ๋“œ์—์„œ ๋‹ค๋ฅธ ๋…ธ๋“œ๋กœ ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ์ตœ๋‹จ ๊ฒฝ๋กœ 1 2 3 4 5 6 0 4 2 INF INF INF nearnest ๊ฐ’ : ๋ฐฉ๋ฌธํ•œ ๋…ธ๋“œ({1}) ์ค‘์—์„œ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋…ธ๋“œ 1 2 3 4 5 6 1 1 1 1 1 1 2. ๊ฐฑ์‹  distance : 1๋ฒˆ ๋…ธ๋“œ์—์„œ n๋ฒˆ ๋…ธ๋“œ๋กœ ๊ฐ€๋Š” ๋น„์šฉ๋ณด๋‹ค 1~3, 3~n์œผ๋กœ ๊ฐ€๋Š” ๋น„์šฉ์ด ๋” ์ž‘์œผ๋ฉด ๊ฐฑ์‹  1 2 3 4 5 6 0 4 2 INF 6 (๊ฐฑ์‹ ) INF nearnest ๊ฐ’ : ๋ฐฉ๋ฌธํ•œ ๋…ธ๋“œ({1, 3}) ์ค‘์—์„œ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋…ธ๋“œ 1 2 3 4 5 6 1 1 1 1 3 (๊ฐฑ์‹ ) 1 3. 2๋ฒˆ ๋ฐ˜๋ณต ๋ฌธ์ œ์—์„œ ์ฃผ์–ด..

    [Python/ํŒŒ์ด์ฌ] ๋ฐฑ์ค€ 1865๋ฒˆ: ์›œํ™€

    ๋ฌธ์ œ ํ’€์ด ๋ฒจ๋งŒ ํฌ๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•ด์„œ ํ’€๋ฉด ๋œ๋‹ค. ๋‹จ, ์ผ๋ฐ˜์ ์ธ ๋ฒจ๋งŒ ํฌ๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์•„๋‹Œ "์Œ์˜ ๊ฐ„์„  ์‚ฌ์ดํด"์ด ์กด์žฌํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋งŒ ๊ตฌํ•˜๋ฉด ๋œ๋‹ค. ๋˜ํ•œ "๋„๋กœ"๋Š” ์–‘๋ฐฉํ–ฅ์ด๊ณ  "์›œํ™€"์€ ๋‹จ๋ฐฉํ–ฅ์ž„์„ ์ฃผ์˜ํ•ด์„œ ์ž…๋ ฅ๋ฐ›์•„์•ผ ํ•œ๋‹ค. https://www.youtube.com/watch?v=Ppimbaxm8d8&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC&index=13 ์ฝ”๋“œ from sys import stdin input = stdin.readline def bf(): for i in range(n): for j in range(len(edges)): cur, next, cost = edges[j] if dist[next] > dist[cur] + cost: dist[next] = ..

    [Python/ํŒŒ์ด์ฌ] ๋ฐฑ์ค€ 5014๋ฒˆ: ์Šคํƒ€ํŠธ๋งํฌ

    ๋ฌธ์ œ ํ’€์ด ์ „ํ˜•์ ์ธ ๋„ˆ๋น„์šฐ์„  ํƒ์ƒ‰ ๋ฌธ์ œ, heap์„ ์ด์šฉํ•ด ํ’€์–ด๋ณด์•˜๋‹ค. ์ฝ”๋“œ from sys import stdin import heapq input = stdin.readline f, s, g, u, d = map(int, input().split()) visited = [False] * (f + 1) q = [(0, s)] visited[s] = True ans = "use the stairs" while q: cnt, now = heapq.heappop(q) if now == g: ans = cnt break if now - d > 0: if not visited[now - d]: visited[now - d] = True heapq.heappush(q, (cnt + 1, now - d)) if n..

    [Python/ํŒŒ์ด์ฌ] ๋ฐฑ์ค€ 1238๋ฒˆ: ํŒŒํ‹ฐ

    ๋ฌธ์ œ ํ’€์ด ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. ๋‹จ, ํ•™์ƒ๋“ค์ด ๋งˆ์„๋กœ ๋Œ์•„๊ฐ€๋Š” ๊ฒฝ์šฐ๋„ ๊ตฌํ•ด์•ผ ํ•˜๋Š”๋ฐ, ์ด๋•Œ์˜ ๊ฐ„์„ ์€ ์ฃผ์–ด์ง„ ์ž…๋ ฅ์˜ ์‹œ์ž‘์ ๊ณผ ๋์ ์„ ์„œ๋กœ ๋ฐ”๊พธ๋ฉด ๋œ๋‹ค. ์ฝ”๋“œ from sys import stdin import heapq input = stdin.readline n, m, x = map(int, input().split()) toX = [[] for _ in range(n + 1)] #์ง‘์—์„œ ํŒŒํ‹ฐ ๋งˆ์„๋กœ ๊ฐ€๋Š” ์ตœ๋‹จ ๊ฒฝ๋กœ toHome = [[] for _ in range(n + 1)] #ํŒŒํ‹ฐ ๋งˆ์„์—์„œ ์ง‘์œผ๋กœ ๊ฐ€๋Š” ์ตœ๋‹จ ๊ฒฝ๋กœ for _ in range(m): a, b, t = map(int, input().split()) toX[a].append((b, t)) toHome[b].append((a..

    [Python/ํŒŒ์ด์ฌ] ๋ฐฑ์ค€ 14938๋ฒˆ: ์„œ๊ฐ•๊ทธ๋ผ์šด๋“œ

    ๋ฌธ์ œ ํ’€์ด ๋‹ค์ต์ŠคํŠธ๋ผ ๋ฐฉ๋ฒ•๊ณผ ํ”Œ๋กœ์ด๋“œ-์™€์ƒฌ ๋ฐฉ๋ฒ•์ด ์žˆ๋Š”๋ฐ, ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ ์–ด์„œ ํ”Œ๋กœ์ด๋“œ-์™€์ƒฌ ๋ฐฉ๋ฒ•์œผ๋กœ ํ’€์—ˆ๋‹ค. ํ”Œ๋กœ์ด๋“œ-์™€์ƒฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์•ˆ๋‹ค๋ฉด ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์ด๋ฏ€๋กœ ํ’€์ด๋Š” ์ƒ๋žตํ•จ. ์ฝ”๋“œ from sys import stdin input = stdin.readline n, m, r = map(int, input().split()) items = list(map(int, input().split())) graph = [[1e9] * (n + 1) for _ in range(n + 1)] for _ in range(r): a, b, l = map(int, input().split()) graph[a][b] = l graph[b][a] = l for i in range(n + 1): for j in r..