๐Ÿ”์•Œ๊ณ ๋ฆฌ์ฆ˜/๋ฐฑ์ค€

    [Python/ํŒŒ์ด์ฌ] ๋ฐฑ์ค€ 1043๋ฒˆ: ๊ฑฐ์ง“๋ง

    ๋ฌธ์ œ ํ’€์ด ์ง„์‹ค์„ ์•Œ๊ณ  ์žˆ๋Š” ์‚ฌ๋žŒ์˜ ์ง‘ํ•ฉ์„ knowList ํŒŒํ‹ฐ์— ์ฐธ์„ํ•œ ์‚ฌ๋žŒ์˜ ์ง‘ํ•ฉ์„ party party๋ฅผ ์›์†Œ๋กœ ๊ฐ–๋Š” ๋ฐฐ์—ด parties 1. ๋งŒ์•ฝ party, knowList์˜ ๊ต์ง‘ํ•ฉ์ด ํ•˜๋‚˜๋ผ๋„ ์žˆ์œผ๋ฉด knowList = knowList.union(party) (ํŒŒํ‹ฐ์— ์ง„์‹ค์„ ์•„๋Š” ์‚ฌ๋žŒ์ด ํ•œ ๋ช…์ด๋ผ๋„ ์žˆ๋‹ค๋ฉด, ๊ทธ ์‚ฌ๋žŒ์œผ๋กœ ์ธํ•ด ํŒŒํ‹ฐ์— ์ฐธ์„ํ•œ ๋ชจ๋“  ์‚ฌ๋žŒ์ด ์ง„์‹ค์„ ์•Œ๊ฒŒ ๋จ) 2. ์œ„ ๊ณผ์ •์„ ํŒŒํ‹ฐ์˜ ์ˆ˜๋งŒํผ ๋ฐ˜๋ณต why?? 5๊ฐœ์˜ ํŒŒํ‹ฐ๊ฐ€ ์žˆ๊ณ  ์ง„์‹ค์„ ์•„๋Š” ์‚ฌ๋žŒ์ด A๋ผ๊ณ  ๊ฐ€์ •ํ•˜์ž. ์ด ๊ฒฝ์šฐ 5๊ฐœ์˜ ํŒŒํ‹ฐ ์ค‘ A๊ฐ€ ์ฐธ์—ฌํ•œ ํŒŒํ‹ฐ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ฉด ๋œ๋‹ค. ํ™•์ธํ•˜๋˜ ๋„์ค‘ A๊ฐ€ 3๋ฒˆ์งธ ํŒŒํ‹ฐ์— ์ฐธ์—ฌํ•œ ๊ฒƒ์ด ๋ฐœ๊ฒฌ๋˜์–ด B ์—ญ์‹œ ์ง„์‹ค์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž. B์— ๋Œ€ํ•ด์„œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ 5๊ฐœ์˜ ํŒŒํ‹ฐ ์ค‘ B๊ฐ€ ์ฐธ์—ฌํ•œ ํŒŒํ‹ฐ๊ฐ€ ์žˆ..

    [Python/ํŒŒ์ด์ฌ] ๋ฐฑ์ค€ 10830๋ฒˆ: ํ–‰๋ ฌ ์ œ๊ณฑ

    ๋ฌธ์ œ ํ’€์ด ํ–‰๋ ฌ ๊ณฑ์…ˆ์„ ๊ตฌํ•˜๋Š” ํ•จ์ˆ˜๋งŒ ์ž‘์„ฑํ•˜๋ฉด ๋ถ„ํ•  ์ œ๊ณฑ์„ ์ด์šฉํ•œ ๊ฑฐ๋“ญ์ œ๊ณฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ๋‹ค. ํ–‰๋ ฌ ๊ณฑ์…ˆ์„ ๊ตฌํ•˜๋Š”๊ฒŒ ์ข€ ๊นŒ๋‹ค๋กœ์› ๋‹ค... ์ฝ”๋“œ import sys input = sys.stdin.readline sys.setrecursionlimit(10 ** 9) n, b = map(int, input().split()) matrix = [] for _ in range(n): matrix.append(list(map(int, input().split()))) def mulMatrix(m1, m2): tmpArr = [[] for _ in range(n)] for i in range(n): for j in range(n): tmp = 0 for k in range(n): tmp += m1[..

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

    ๋ฌธ์ œ ํ’€์ด ์™„์ „ ์ด์ง„ํŠธ๋ฆฌ ๋ฐ LCA ๋ฌธ์ œ์ด๋‹ค. ์™„์ „ ์ด์ง„ํŠธ๋ฆฌ์˜ ๋ ˆ๋ฒจ์€ log2๋ฅผ ํ†ตํ•ด ๊ตฌํ•  ์ˆ˜ ์žˆ๊ณ  ๋ถ€๋ชจ๋Š” /2๋ฅผ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. ์ฆ‰ ๋‘ ๋…ธ๋“œ์˜ ๋ ˆ๋ฒจ์„ ๊ตฌํ•œ ๋’ค, ๋ ˆ๋ฒจ์„ ์„œ๋กœ ๊ฐ™๊ฒŒ ๋งž์ถฐ์ค€ ๋’ค, ๋‘ ๋…ธ๋“œ๊ฐ€ ์„œ๋กœ ๊ฐ™์„ ๋•Œ๊นŒ์ง€ ๊ฐ ๋…ธ๋“œ์— /2๋ฅผ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. (์ด์ง„ํŠธ๋ฆฌ์™€ LCA๋ฅผ ๊ณต๋ถ€ํ•˜๋ฉด ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ๋‹ค.) ์ฝ”๋“œ import sys, math input = sys.stdin.readline t = int(input()) def getLevel(n): return math.floor(math.log2(n)) for _ in range(t): a, b = map(int, input().split()) while True: levelA, levelB = getLevel(a), getLevel(b) if levelA..

    [Python/ํŒŒ์ด์ฌ] ๋ฐฑ์ค€ 11054๋ฒˆ: ๊ฐ€์žฅ ๊ธด ๋ฐ”์ดํ† ๋‹‰ ๋ถ€๋ถ„ ์ˆ˜์—ด

    ๋ฌธ์ œ ํ’€์ด ๊ฐ€์žฅ ๊ธด ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด๊ณผ ๊ฐ€์žฅ ๊ธด ๊ฐ์†Œํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด์„ ๊ตฌํ•˜๋ฉด ๋œ๋‹ค. (๋ถ€๋ถ„ ์ˆ˜์—ด ์‹œ๋ฆฌ์ฆˆ๋ฅผ ํ’€์—ˆ๋‹ค๋ฉด ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ๋‹ค.) ์ฝ”๋“œ import sys input = sys.stdin.readline n = int(input()) arr = list(map(int, input().split())) dpMax = [1] * n dpMin = [1] * n for i in range(1, n): for j in range(i): if arr[i] > arr[j]: dpMax[i] = max(dpMax[i], dpMax[j] + 1) for i in range(n - 1, -1, -1): for j in range(i, n): if arr[i] > arr[j]: dpMin[i] = max(dpMin..

    [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๋ฒˆ ๋ฐ˜๋ณต ๋ฌธ์ œ์—์„œ ์ฃผ์–ด..