[백준 7562번] 나이트의 이동
7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net from collections import deque t = int(input()) dx = [-1,-2,-2,-1,1,2,2,1] dy = [-2,-1,1,2,-2,-1,1,2] for _ in range(t): n = int(input()) start_x, start_y = map(int,input().split()) dest_x, dest_y = map(int,input().split()) visited = [[-1]*n for _ in range(n)] d..
2023. 10. 18.
[백준 4179번] 불!
4179번: 불! 입력의 첫째 줄에는 공백으로 구분된 두 정수 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1000 이다. R은 미로 행의 개수, C는 열의 개수이다. 다음 입력으로 R줄동안 각각의 미로 행이 주어진다. 각각의 문자 www.acmicpc.net from collections import deque r,c = map(int,input().split()) maze = [list(input()) for _ in range(r)] visited = [[-1]*c for _ in range(r)] dx = [-1,1,0,0] dy = [0,0,-1,1] fire_list = [] for i in range(r): for j in range(c): if maze[i][j] == "J": start..
2023. 10. 3.
[백준 2178번] 미로 탐색
2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net from collections import deque n,m = map(int,input().split()) maze = [list(map(int,list(input()))) for _ in range(n)] visited = [[-1]*m for _ in range(n)] dx = [-1,1,0,0] dy = [0,0,-1,1] def bfs(): visited[0][0] = 1 queue = deque([(0,0)]) while queue: cur_x,cur_y = queue.popleft..
2023. 10. 3.
[백준 1926번] 그림
1926번: 그림 어떤 큰 도화지에 그림이 그려져 있을 때, 그 그림의 개수와, 그 그림 중 넓이가 가장 넓은 것의 넓이를 출력하여라. 단, 그림이라는 것은 1로 연결된 것을 한 그림이라고 정의하자. 가로나 세로 www.acmicpc.net from collections import deque n, m = map(int,input().split()) area = [list(map(int,input().split())) for _ in range(n)] visited = [[0]*m for _ in range(n)] count_list = [] dx = [-1,1,0,0] dy = [0,0,-1,1] def bfs(x,y): if visited[x][y] != 0 or area[x][y] != 1: ret..
2023. 10. 3.