dfs 20

[백준] 2636 치즈 python

https://acmicpc.net/problem/2636 2636번: 치즈 아래 과 같이 정사각형 칸들로 이루어진 사각형 모양의 판이 있고, 그 위에 얇은 치즈(회색으로 표시된 부분)가 놓여 있다. 판의 가장자리(에서 네모 칸에 X친 부분)에는 치즈가 놓 www.acmicpc.net from collections import deque def bfs(q): melting = 0 melt_list = set() while q: x, y = q.popleft() for i in range(4): dx = x + delta[i][0] dy = y + delta[i][1] if dx = h + 2 or dy = w + 2: continue if visited[dx][dy]: continue..

STUDY/Algorithm 2021.03.28

[SWEA] 1767 프로세서 연결하기 python

swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV4suNtaXFEDFAUf&categoryId=AV4suNtaXFEDFAUf&categoryType=CODE&problemTitle=SW&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=3 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com import sys sys.stdin = open('./sample_input_1.txt', 'r') for tc in range(1, int(input()) +..

STUDY/Algorithm 2021.03.17

[백준] 2583 영역구하기

www.acmicpc.net/problem/2583 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net from collections import deque def bfs(row, col): q = deque() dr = [-1, 1, 0, 0] dc = [0, 0, -1, 1] q.append((row, col)) matrix[row][col] = 1 while q: nr, nc = q.popleft() for i in range(4): if 0

STUDY/Algorithm 2021.03.04

[백준] 1012 유기농배추

https://acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net def dfs(row, col, matrix, visited): pass t = int(input()) for tc in range(1, t + 1): m, n, k = map(int, input().split()) field = [[0] * m for _ in range(n)] visited = [[0] * m for _ in range(n)] for _ in range(k): x, y = map(int, inpu..

STUDY/Algorithm 2021.03.01

[백준] 10026 적록색약

www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net def dfs1(row, col, matrix, visited): delta = [(-1, 0), (1, 0), (0, -1), (0, 1)] # 상하좌우 stack = [(row, col)] while stack: visit_node = stack[-1] visited[visit_node[0]][visit_node[1]] = 1 adjacent = [] for dt in delta: if 0

STUDY/Algorithm 2021.03.01

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

www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net def find_adjacent(matrix, node): # node = (row, col) _list = [] delta = [(-1, 0), (1, 0), (0, -1), (0, 1)] #상하좌우 for dt in delta: tmp_row = node[0] + dt[0] tmp_col = node[1] + dt[1] if 0 =n: continue if a[nx][ny] == '1': dfs(nx,ny) ..

STUDY/Algorithm 2021.02.24

[백준] 2606 바이러스

https://acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net node = int(input()) vertex = int(input()) graph = [list() for _ in range(node + 1)] for _ in range(vertex): u, v = map(int, input().split()) graph[u].append(v) graph[v].append(u) visited = [0] * (node + 1) stack = [1] # 1번 컴퓨터 부터 ..

STUDY/Algorithm 2021.02.24

[프로그래머스] LEVEL3 단어 변환, python3, 깊이/너비 우선 탐색(DFS/BFS)

def solution(begin, target, words): if not target in words: return 0 answer = 0 queue = [begin] while words!=[]: answer+=1 tmp=[] while queue: word_stack=queue.pop(0) for word in words: change=0 for i in range(len(word)): if word[i]==word_stack[i]: change+=1 if change==len(word)-1: tmp.append(word) words= list([word for word in words if word not in tmp]) #print("after:",tmp,words) if tmp==[] and..

STUDY/Algorithm 2020.01.17

[프로그래머스] LEVEL2 타겟 넘버, python3, 깊이/너비 우선 탐색(DFS/BFS)

def solution(numbers, target): answer_list=[0] for i in numbers: temporary_list=[] #print("\nanswer_list:",answer_list) for j in answer_list: temporary_list.append(j+i) temporary_list.append(j-i) #print("tmp_list",temporary_list) answer_list=temporary_list #print("answer_list",answer_list) answer = answer_list.count(target) return answer 방법은 똑같았으나 구현하지 못해 내 코드는 아니지만 올린다.

STUDY/Algorithm 2019.11.20