[알고리즘] 백준 14502 연구소 / 파이썬
www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크� www.acmicpc.net from collections import deque from copy import deepcopy dx, dy = [0, -1, 0, 1], [-1, 0, 1, 0] #bfs이용해 바이러스 퍼뜨림 def virus(i, j, Map2): q = deque() q.append([i, j]) while q: x, y = q.popleft() for k in range(4): xx, yy = x + dx[k], y + dy[..
[알고리즘] 백준 15988 1, 2, 3 더하기 2 / 파이썬
www.acmicpc.net/problem/15988 15988번: 1, 2, 3 더하기 3 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 1,000,000,009로 나눈 나머지를 출력한다. www.acmicpc.net #처음에 % 1000000009를 print에서 해줬는데 메모리초과 테스트케이스가 커지면 초과되는듯..? lst = [0] * 1000001 lst[1], lst[2], lst[3] = 1, 2, 4 for i in range(4, 1000001): lst[i] = (lst[i-1] + lst[i-2] + lst[i-3]) % 1000000009 for _ in range(int(input())): num = int(input()) print(lst[num])
[알고리즘] 백준 2206 벽 부수고 이동하기 / 파이썬
www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로�� www.acmicpc.net 방문을 체크하는 ck배열을 삼중배열로 만들어서 벽을 안부술경우 / 부술경우를 구별한다 벽을 안부쉈다면 ck[x][y][0]에 거리를 저장하고, 부쉈다면 ck[x][y][1]에 거리를 저장한다 그리고 n, m까지 갔다면 저장했던 거리를 리턴, 아니라면 -1을 리턴해 출력해준다 from collections import deque dx, dy = [0, -1, 0, 1], [-1, 0,..