본문 바로가기

백준 문제 풀이 및 피드백

(33)
2023.01.17 유기농 배추 백준 https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net import sys input = sys.stdin.readline def main(): def dfs(i,j): nonlocal graph discovered = [[i,j]] while discovered: pos = discovered.pop() graph[pos[0]][pos[1]] = 0 next_pos = [[pos[0]+1,pos[1]],[pos[0]-1,pos[1]],[pos[0],pos[1]+..
2023.01.16 백준 DFS와 BFS https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net import sys from collections import defaultdict from collections import deque input = sys.stdin.readline def dfs(start,visited = []): visited.append(start) print(start,end=' ') for i in graph_dic[start]:..
2023.01.15 반복수열 백준(Python) https://www.acmicpc.net/problem/2331 2331번: 반복수열 첫째 줄에 반복되는 부분을 제외했을 때, 수열에 남게 되는 수들의 개수를 출력한다. www.acmicpc.net import sys input = sys.stdin.readline def dfs(num,visited=[]): if num in visited: return visited[:visited.index(num)] visited.append(num) return dfs(seq(num),visited) def seq(a): return sum(map(lambda x: int(x) ** k,list(str(a)))) n , k = map(int,input().split()) print(len(dfs(n))) seq..
2023.01.15 미로탐색 백준 https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net import sys from collections import deque input = sys.stdin.readline def bfs(): pos = [0,0] discoverd = deque([pos]) while discoverd: if pos == [N-1,M-1]: break pos = discoverd.popleft() maze[pos[0]][pos[1]] = 0 dx_pos = [[pos[0],pos[1]-1],[p..
2023.01.15 영역구하기 백준 https://www.acmicpc.net/problem/2583 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net import sys input = sys.stdin.readline def main(): def dfs(x,y): nonlocal graph nonlocal counter if 0
2023.01.15 단지번호붙이기 백준 https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net import sys input = sys.stdin.readline def main(): n = int(input().strip()) graph = [list(input().strip()) for _ in range(n)] apart_lens = [] def dfs(x,y): nonlocal graph nonlocal count if 0
2023.01.14 백준 바이러스 https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net import sys from collections import defaultdict input = sys.stdin.readline def dfs(v = 1,visited = []): if v in visited: # 1번째 탈출조건 : 만약 방문한적이 있다면 탈출 return visited.append(v) # 방문한 곳 추가 for i in graph_dict[v]: # 있는 곳에서 방문 할 수 있..
2023.01.14 백준 쿼드트리 https://www.acmicpc.net/problem/1992 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또 www.acmicpc.net import sys input = sys.stdin.readline def quad_tree(): n = int(input().strip()) graph = [list(input().strip()) for _ in range(n)] answer = "" def quad(x,y,n): st = graph[x][y] nonlocal answer for i in range(x,x+n): f..