๐์๊ณ ๋ฆฌ์ฆ
[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..