[백준] 2589. 보물섬 (Python)
PyPy3로 돌려야 시간초과가 나지 않는다. -풀이 from collections import deque n, m = map(int, input().split()) maps = [list(input()) for _ in range(n)] max_len = 0 dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] queue = deque() def BFS(i, j): queue.append([i,j]) visited = [[0] * m for _ in range(n)] max_value = 0 visited[i][j] = 1 while queue: x, y = queue.popleft() for a in range(4): nx = x + dx[a] ny = y + dy[a] if n > nx..
[백준] 7576. 토마토 (Python)
-문제링크 www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net -풀이 from collections import deque dx = [-1, 1, 0, 0] dy = [0, 0, 1, -1] m, n = map(int, input().split()) maps = [list(map(int,input().split())) for _ in range(n)] q = deque() for i in range(n): for j in range(m): if ..
[SWEA] 1953. 탈주범 검거 (Python)
BFS! 인데 연결 상태를 확인하는 과정을 제대로 생각해야 한다. 밑으로 갈 수 있어서 갔더니 터널끼리 연결이 안 된 경우인, + ㅡ 이런 모양이 있을 수 있기 때문이다. - 풀이 from collections import deque tunnel = { 0: (), 1: ((1, 0), (0, 1), (-1, 0), (0, -1)), 2: ((1, 0), (-1, 0)), 3: ((0, 1), (0, -1)), 4: ((-1, 0), (0, 1)), 5: ((1, 0), (0, 1)), 6: ((1, 0), (0, -1)), 7: ((-1, 0), (0, -1)) } t = int(input()) for test in range(1,t+1): n, m, r, c, l = map(int, input().s..
[Python3] 리스트에서 최대 최소 찾기 min/max
리스트에서 최소 값과 최대 값을 찾을 때 for문을 돌며 minNum, maxNum 값을 갱신시키는 방법 말고 효과적으로 최소값과 최대값을 알 수 있는 함수가 있다. 이는 min과 max 이다. 단순히 min(a,b) 와 같이 변수끼리 비교하는 것도 가능하지만 list 에 있는 값을 비교하는 것도 가능하다! 아주 놀라운 함수이다. c언어에서는 여러 변수에서 min()이나 max 함수를 이용할 때 min(a,min(b, c)) 같이 min안의 min을 (재귀함수야 뭐야)이용해야 했지만, python은 min안에 최소값을 찾고 싶은 모든 변수를 넣을 수 있기 때문에 리스트의 최소 값을 알 수 있는 것이다. >>> min(1,3,-1,43,63,11,-234) -234 >>> max(-13151,16341,-..