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

    [Python/ํŒŒ์ด์ฌ] ๋ฐฑ์ค€ 1726๋ฒˆ: ๋กœ๋ด‡

    ๋ฌธ์ œ ํ’€์ด ์™ผ์ชฝ ์˜ค๋ฅธ์ชฝ ์„ค์ • def turnLeft(now): if now == 1: return 4 #๋™ ๋ถ if now == 2: return 3 #์„œ ๋‚จ if now == 3: return 1 #๋‚จ ๋™ if now == 4: return 2 #๋ถ ์„œ def turnRight(now): if now == 1: return 3 #๋™ ๋‚จ if now == 2: return 4 #์„œ ๋ถ if now == 3: return 2 #๋‚จ ์„œ if now == 4: return 1 #๋ถ ๋™ ์ž…๋ ฅ i, j, dir์€ ๋กœ๋ด‡์˜ ์œ„์น˜ m, n = map(int, input().split()) graph = [list(map(int, input().split())) for _ in range(m)] visited = [[[..

    [Python/ํŒŒ์ด์ฌ] ๋ฐฑ์ค€ 3055๋ฒˆ: ํƒˆ์ถœ

    ๋ฌธ์ œ ํ’€์ด ์ž…๋ ฅ๋ฐ›๋Š” ์ฝ”๋“œ from collections import deque input = __import__('sys').stdin.readline r, c = map(int, input().split()) graph = [list(input().strip()) for _ in range(r)] waterVisited = [[False] * c for _ in range(r)] dociVisited = [[False] * c for _ in range(r)] water = deque() dx = [0, 0, -1, 1] dy = [1, -1, 0, 0] ๊ตด, ๊ณ ์Šด๋„์น˜, ๋ฌผ์˜ ์œ„์น˜๋ฅผ ์ฐพ์•„์ฃผ์—ˆ๋‹ค. ๋ฌผ ๊ฐ™์€ ๊ฒฝ์šฐ bfs๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋ฏ€๋กœ deque์— ๋„ฃ์—ˆ๋‹ค. # ์ดˆ๊ธฐ๊ฐ’ ์„ค์ • for i in range(r)..

    [Python/ํŒŒ์ด์ฌ] ๋ฐฑ์ค€ 16933๋ฒˆ: ๋ฒฝ ๋ถ€์ˆ˜๊ณ  ์ด๋™ํ•˜๊ธฐ 3

    ๋ฌธ์ œ ํ’€์ด n, m, k = map(int, input().split()) graph = [input().rstrip() for _ in range(n)] visited = [[k + 1 for _ in range(m)] for _ in range(n)] visited[0][0] = 0 visited๋Š” ๋„์ฐฉํ–ˆ์„ ๋•Œ ๋ฒฝ์„ ๋ถ€์ˆœ ํšŸ์ˆ˜๋ฅผ ๋„ฃ๋Š”๋‹ค. ์ดˆ๊ธฐ ๊ฐ’์œผ๋กœ ๋ฒฝ์„ ์ตœ๋Œ€๋กœ ๋ถ€์ˆ  ์ˆ˜ ์žˆ๋Š” ํšŸ์ˆ˜๋ฅผ ๋„ฃ๋Š”๋‹ค. ๋งŒ์•ฝ (x, y) ์ขŒํ‘œ์—์„œ ๋ฒฝ์„ ๋ถ€์ˆœ ํšŸ์ˆ˜(w)๊ฐ€ 5๋ฒˆ์ด๊ณ , k+1 = 7์ด๋ผ๊ณ  ๊ฐ€์ •ํ–ˆ์„ ๋•Œ visited[y][x] = 4 ์ธ ๊ฒฝ์šฐ (x, y) ์ขŒํ‘œ์— ๋ฒฝ์„ 4๋ฒˆ ๋ถ€์ˆ˜๊ณ  ๋ฐฉ๋ฌธํ–ˆ๋‹ค๋Š” ๋œป visited[y][x] = 7์ธ ๊ฒฝ์šฐ (x, y) ์ขŒํ‘œ๋ฅผ ์•„์ง ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์•˜๋‹ค๋Š” ๋œป ์ฝ”๋“œ from collections imp..

    [Python/ํŒŒ์ด์ฌ] ๋ฐฑ์ค€ 16946๋ฒˆ: ๋ฒฝ ๋ถ€์ˆ˜๊ณ  ์ด๋™ํ•˜๊ธฐ 4

    ๋ฌธ์ œ ํ’€์ด 1. 0์˜ ๋ฌถ์Œ์„ ๊ทธ๋ฃน์œผ๋กœ ํ‘œ์‹œํ•ด์ค€๋‹ค. 2. ๊ฐ ๊ทธ๋ฃน๋ณ„๋กœ 0์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋ช‡ ๊ฐœ์ธ์ง€ dict๋ฅผ ํ†ตํ•ด ์ €์žฅํ•œ๋‹ค. 3. ๋ฒฝ(1)์—์„œ ์ƒํ•˜์ขŒ์šฐ๋กœ ์ธ์ ‘ํ•œ ๊ทธ๋ฃน์„ ๊ตฌํ•œ ๋’ค, ๊ทธ ๊ทธ๋ฃน์— ํ•ด๋‹นํ•˜๋Š” 0์˜ ๊ฐœ์ˆ˜๋ฅผ ๋”ํ•ด์ค€๋‹ค. ๊ทธ๋ฃน์ด ์ค‘๋ณต๋˜์ง€ ์•Š๊ฒŒ set()์„ ์‚ฌ์šฉํ•œ๋‹ค. ์ฝ”๋“œ from collections import deque input = __import__('sys').stdin.readline def bfs(start): q = deque() q.append(start) cnt = 1 while q: i, j = q.popleft() zeros[i][j] = group for idx in range(4): ni, nj = i + dy[idx], j + dx[idx] if ni = n or ..

    [Python/ํŒŒ์ด์ฌ] ๋ฐฑ์ค€ 16954๋ฒˆ: ์›€์ง์ด๋Š” ๋ฏธ๋กœ ํƒˆ์ถœ

    ๋ฌธ์ œ ํ’€์ด ๋ฒฝ์ด ํ•œ ์นธ ๋‚ด๋ ค์˜ค๋Š” ๊ฒƒ = ์šฑ์ œ๊ฐ€ ํ•œ ์นธ ์œ„๋กœ ์˜ฌ๋ผ๊ฐ€๋Š” ๊ฒƒ ๋˜ํ•œ ์šฑ์ œ๊ฐ€ ๋งจ ์œ„์นธ์œผ๋กœ ์˜ฌ๋ผ๊ฐ€๊ธฐ๋งŒ ํ•˜๋ฉด, ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. (1์ดˆ ๋’ค์—๋Š” ์šฑ์ œ์™€ ๊ฐ™์€ ์นธ์— ์žˆ๋Š” ๋ฒฝ๋“ค์ด ์ „๋ถ€ ์•„๋ž˜๋กœ ๋‚ด๋ ค๊ฐ€๊ณ , ์šฑ์ œ๋Š” ๊ทธ ์นธ์— ๊ทธ๋Œ€๋กœ ์žˆ์œผ๋ฏ€๋กœ) ์ฝ”๋“œ from collections import deque input = __import__('sys').stdin.readline n = 8 graph = [list(input().strip()) for _ in range(n)] visited = [[False] * n for _ in range(n)] dx = [0, 0, 1, -1, 1, -1, 1, -1, 0] dy = [1, -1, 0, 0, 1, 1, -1, -1, 0] q = deque() q.ap..

    [Python/ํŒŒ์ด์ฌ] ๋ฐฑ์ค€ 2448๋ฒˆ: ๋ณ„ ์ฐ๊ธฐ - 11

    ๋ฌธ์ œ ํ’€์ด ์œ„ ๊ทธ๋ฆผ๊ณผ ํ†ตํ•ด ๊ทœ์น™์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. N = 6 -> N = 3์ผ ๋•Œ์˜ ์‚ผ๊ฐํ˜• 3๊ฐœ๋กœ ๋ถ„ํ•  ๊ฐ€๋Šฅ N = 12 -> N = 6์ผ ๋•Œ์˜ ์‚ผ๊ฐํ˜• 3๊ฐœ๋กœ ๋ถ„ํ•  ๊ฐ€๋Šฅ N = 24 -> N = 6์ผ ๋•Œ์˜ ์‚ผ๊ฐํ˜• 3๊ฐœ๋กœ ๋ถ„ํ•  ๊ฐ€๋Šฅ ... N= 3์ธ ๊ฒฝ์šฐ ์‚ผ๊ฐํ˜•์„ ๊ทธ๋ฆฐ๋‹ค. ์•„๋‹ ๊ฒฝ์šฐ, ์ด์ „ ์ƒํƒœ์˜ ์‚ผ๊ฐํ˜•(N//2) 3๊ฐœ๋กœ ๋ถ„ํ•  (๊ฐ๊ฐ์— ๋Œ€ํ•ด ์žฌ๊ท€ ํ˜ธ์ถœ) 1. ์šฐ์„  ์ „์ฒด ๋ฐฐ์—ด์„ ์ƒ์„ฑ stars = [[' ']*2*n for _ in range(n)] 2. ๋ถ„ํ•  ์ •๋ณต์„ ์œ„ํ•ด ํ•จ์ˆ˜ ์ƒ์„ฑ ํ›„ n์ด 3์ผ ๋•Œ ์‚ผ๊ฐํ˜•์„ ๊ทธ๋ ค์ค€๋‹ค. i, j๋Š” ์ขŒํ‘œ ๊ฐ’ def recursion(i, j, size): if size == 3: stars[i][j] = '*' stars[i + 1][j - 1] = stars[i + 1][j ..

    [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..