문제풀이/DFS & BFS 33

[파이썬] [DFS] 백준 14500 테트로미노

문제 https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net 코드 import sys input=sys.stdin.readline dx=[-1,1,0,0] dy=[0,0,-1,1] n,m=map(int, input().split()) array=[list(map(int, input().split())) for _ in range(n)] visited=[[0]*m for _ in range(n)] max_val =max(map(max,array)) #전..

[파이썬] [BFS] 백준 1707 이분 그래프

문제 https://www.acmicpc.net/problem/1707 1707번: 이분 그래프 입력은 여러 개의 테스트 케이스로 구성되어 있는데, 첫째 줄에 테스트 케이스의 개수 K가 주어진다. 각 테스트 케이스의 첫째 줄에는 그래프의 정점의 개수 V와 간선의 개수 E가 빈 칸을 사이에 www.acmicpc.net 코드 import sys from collections import deque input=sys.stdin.readline t=int(input()) for _ in range(t): v,e=map(int,input().split()) visited=[0]*(v+1) graph=[[] for _ in range(v+1)] for _ in range(e): a,b=map(int,input()...

[파이썬] [DFS] 백준 1068 트리

문제 https://www.acmicpc.net/problem/1068 1068번: 트리 첫째 줄에 트리의 노드의 개수 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 0번 노드부터 N-1번 노드까지, 각 노드의 부모가 주어진다. 만약 부모가 없다면 (루트) -1이 주어진다 www.acmicpc.net 코드 n=int(input()) graph=[[]*n for _ in range(n)] array=list(map(int, input().split())) for i,k in enumerate(array): if k>=0: graph[k].append(i) else: start=i re=int(input()) if re==start: print(0) exit(0) result=0 fin..

[PyPy] [DFS] 백준 2580 스도쿠

문제 https://www.acmicpc.net/problem/2580 2580번: 스도쿠 스도쿠는 18세기 스위스 수학자가 만든 '라틴 사각형'이랑 퍼즐에서 유래한 것으로 현재 많은 인기를 누리고 있다. 이 게임은 아래 그림과 같이 가로, 세로 각각 9개씩 총 81개의 작은 칸으로 이루 www.acmicpc.net 코드 graph=[list(map(int, input().split())) for _ in range(9)] blank=[] for i in range(9): for j in range(9): if graph[i][j]==0: blank.append([i,j]) def rowcheck(r,a): for i in range(9): if a==graph[r][i]: return False ret..

[파이썬] [DFS] 백준 1987 알파벳

문제 https://www.acmicpc.net/problem/1987 1987번: 알파벳 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으 www.acmicpc.net 코드 import sys input=sys.stdin.readline R,C=map(int, input().split()) array=[list(input().rstrip()) for _ in range(R)] dx=[0,0,-1,1] dy=[1,-1,0,0] alpha=[0]*26 alpha[ord(array[0][0])-65]=1 result=0 def dfs(r,c,count):..

[파이썬] [BFS] 백준 2206 벽 부수고 이동하기

문제 https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net 코드 from collections import deque n,m=map(int, input().split()) graph=[list(map(int, list(input().rstrip()))) for _ in range(n)] visited=[[[0]*2 for _ in range(m)] for _ in range(n)] dx=[0,0,-1,1] dy=[1,-1,0..

[파이썬] [BFS] 백준 7569 토마토

문제 https://www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net 코드 import sys from collections import deque input=sys.stdin.readline queue=deque() m,n,h=map(int, input().split()) #n행 m열 dn=[0,0,-1,1,0,0] dm=[-1,1,0,0,0,0] dh=[0,0,0,0,-1,1] graph=[] for i in range(h): tem..

[파이썬] [BFS] 백준 3055 탈출

문제 https://www.acmicpc.net/problem/3055 3055번: 탈출 사악한 암흑의 군주 이민혁은 드디어 마법 구슬을 손에 넣었고, 그 능력을 실험해보기 위해 근처의 티떱숲에 홍수를 일으키려고 한다. 이 숲에는 고슴도치가 한 마리 살고 있다. 고슴도치는 제 www.acmicpc.net 코드 from collections import deque r,c=map(int, input().split()) INF=int(1e10) dx=[-1,1,0,0] dy=[0,0,-1,1] visited=[[0]*c for _ in range(r)] array=[list(input().rstrip()) for _ in range(r)] dr,dc=0,0 queue=deque() for i in range(..

[파이썬] [DFS] 백준 2667 단지번호붙이기

문제 https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 코드 dx=[-1,1,0,0] dy=[0,0,-1,1] def dfs(r,c,k): visited[r][c]=k for i in range(4): nx=r+dx[i] ny=c+dy[i] if 0

[파이썬] [BFS] Pro 경주로 건설

문제 https://programmers.co.kr/learn/courses/30/lessons/67259?language=python3 코딩테스트 연습 - 경주로 건설 [[0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0],[0,0,0,0,1,0,0,0],[0,0,0,1,0,0,0,1],[0,0,1,0,0,0,1,0],[0,1,0,0,0,1,0,0],[1,0,0,0,0,0,0,0]] 3800 [[0,0,1,0],[0,0,0,0],[0,1,0,1],[1,0,0,0]] 2100 [[0,0,0,0,0,0],[0,1,1,1,1,0],[0,0,1,0,0,0],[1,0,0,1,0,1],[ programmers.co.kr 코드 from collections import d..