๐์๊ณ ๋ฆฌ์ฆ/๋ฐฑ์ค
[Python/ํ์ด์ฌ] ๋ฐฑ์ค 1194๋ฒ: ๋ฌ์ด ์ฐจ์ค๋ฅธ๋ค, ๊ฐ์
๋ฌธ์ ํ์ด ๋นํธ ๋ง์คํน์ ์ฌ์ฉํด ํ์๋ค. ์์ง ๋ฐฉ๋ฌธํ์ง ์์ ์ํ : 0b0 ํค ์์ : 0b1 aํค : 0b10 bํค : 0b100 cํค : 0b1000 a, cํค : 0b1010 ... ์ด๋ฐ ์์ผ๋ก ๋ฐฉ๋ฌธ ์ฌ๋ถ๋ฅผ ๊ธฐ๋กํ๋ค. ๋ํ haveKey์ ๋ฏผ์์ด๊ฐ ๋ณด์ ํ ์ด์ ์ ๋ณด๋ฅผ ๋นํธ ๋ง์คํนํ๋ค. ํค ์์ : 0b1 aํค ๋ณด์ : 0b11 bํค ๋ณด์ : 0b101 a, bํค ๋ณด์ : 0b111 ... ๋ง์ฝ a, bํค๋ฅผ ๊ฐ์ง ๋ฏผ์์ด๊ฐ ์ขํ(x, y)์ ๋ฐฉ๋ฌธํ๋ ค ํ๋ค. ํ์ง๋ง ํด๋น ์ขํ์ ์ด๋ฏธ a, b, cํค๋ฅผ ์์ ํ ์ฑ๋ก ๋ฐฉ๋ฌธํ ์ ์ด ์๋ค๋ฉด ๋ฐฉ๋ฌธํ ํ์๊ฐ ์๋ค. if (visited[ni][nj] | haveKey) == visited[ni][nj]: continue ์๋ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ๋ฉด ์ดํดํ๊ธฐ ์ฝ๋ค. htt..
[Python/ํ์ด์ฌ] ๋ฐฑ์ค 11578๋ฒ: ํ์ ๋ชจ์ง
๋ฌธ์ ํ์ด ๋นํธ ๋ง์คํน์ ์ฌ์ฉํ์ฌ ์ ๋ ฅ n, m = map(int, input().split()) arr = [0b0000000000] * (m + 1) for i in range(1, m + 1): question = list(map(int, input().split()))[1:] for q in question: arr[i] |= (1
[Python/ํ์ด์ฌ] ๋ฐฑ์ค 17472๋ฒ: ๋ค๋ฆฌ ๋ง๋ค๊ธฐ 2
๋ฌธ์ ํ์ด ์ ๋ ฅ n, m = map(int, input().split()) graph = [list(map(int, input().split())) for _ in range(n)] visited = [[False] * m for _ in range(n)] dir = ((0, 1), (0, -1), (1, 0), (-1, 0)) ์ฌ์ ๊ตฌ๋ถ ์ง๊ธฐ ์ํด bfs๋ฅผ ์ฌ์ฉํ๋ค. def marking(y, x, mark): q = deque() q.append((y, x)) graph[y][x] = mark visited[y][x] = True while q: i, j = q.popleft() for dy, dx in dir: ni, nj = i + dy, j + dx if condition(ni, nj) or n..
[Python/ํ์ด์ฌ] ๋ฐฑ์ค 2146๋ฒ: ๋ค๋ฆฌ ๋ง๋ค๊ธฐ
๋ฌธ์ ํ์ด ์ ๋ ฅ import sys from collections import deque imput = sys.stdin.readline n = int(input()) graph = [list(map(int, input().split())) for _ in range(n)] visited = [[False] * n for _ in range(n)] dir = ((0, 1), (0, -1), (1, 0), (-1, 0)) ์ฌ์ ๋๋๋ ๊ณผ์ 0์ด ์๋ ์ขํ๋ฅผ ๋ฐ๊ฒฌํ ๊ฒฝ์ฐ ๊ทธ ์ขํ์ ์ฐ๊ฒฐ๋ ๊ฐ์ ์ ๋ถ mark๋ก ๋ฐ๊พผ๋ค. mark = 1 for i in range(n): for j in range(n): if graph[i][j] and not visited[i][j]: marking(i, j, mark) ma..
[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 ..