본문 바로가기

Algorithm/Graph188

[파이썬] 백준 1926 : 그림 (실버1) [파이썬] 백준 1926 : 그림 (실버1) 1926번: 그림 어떤 큰 도화지에 그림이 그려져 있을 때, 그 그림의 개수와, 그 그림 중 넓이가 가장 넓은 것의 넓이를 출력하여라. 단, 그림이라는 것은 1로 연결된 것을 한 그림이라고 정의하자. 가로나 세로 www.acmicpc.net 문제 풀이 0. 방향성 생각 영역 개수, 넓이 구하기 1. 입력 from collections import deque import sys input = lambda : sys.stdin.readline().rstrip() h,w = map(int,input().split()) arr = [list(map(int,input().split())) for _ in range(h)] visit = [[False]*w for _ i.. 2023. 11. 10.
[파이썬] 백준 1303 : 전쟁 - 전투 (실버1) [파이썬] 백준 1303 : 전쟁 - 전투 (실버1) 1303번: 전쟁 - 전투 첫째 줄에는 전쟁터의 가로 크기 N, 세로 크기 M(1 ≤ N, M ≤ 100)이 주어진다. 그 다음 두 번째 줄에서 M+1번째 줄에는 각각 (X, Y)에 있는 병사들의 옷색이 띄어쓰기 없이 주어진다. 모든 자리에는 www.acmicpc.net 문제 풀이 방향성 생각 군집 크기 구하기. 기본적인 BFS / DFS 문제 DFS from collections import deque import sys input = lambda : sys.stdin.readline().rstrip() w,h = map(int,input().split()) arr = [list(input()) for _ in range(h)] visit = [[F.. 2023. 11. 10.
[파이썬] 백준 1833 : 고속철도 설계하기 (골드3) [파이썬] 백준 1833 : 고속철도 설계하기 (골드3) 1833번: 고속철도 설계하기 첫째 줄에 두 정수 C, M를 출력한다. C는 고속철도망을 설치하는데 든 총 비용이며, M은 새로이 설치한 고속철도의 개수이다. 다음 M개의 줄에는 새로 고속철도가 설치된 두 도시번호를 출력한다. www.acmicpc.net 문제 풀이 0. 방향성 생각 최소 비용으로 모든 도시 연결 -> MST 1. 입력 import sys input = lambda : sys.stdin.readline().rstrip() n = int(input()) temp = [list(map(int,input().split())) for _ in range(n)] 인접행렬로 표현돼서 추가적으로 처리 필요하다. 일단 temp에 저장 2. 함수 .. 2023. 11. 5.
[파이썬] 백준 2151 : 거울설치 (골드3) [파이썬] 백준 2151 : 거울설치 (골드3) 2151번: 거울 설치 첫째 줄에 집의 크기 N (2 ≤ N ≤ 50)이 주어진다. 다음 N개의 줄에는 N개의 문자로 집에 대한 정보가 주어진다. ‘#’는 문이 설치된 곳으로 항상 두 곳이며, ‘.’은 아무 것도 없는 것으로 빛은 www.acmicpc.net 문제 풀이 0. 방향성 생각 각 노드가 있는데 들어가는 방향에 따라서 서로 다른 노드로 취급한다. visit[y][x][diretion] 으로 설정한다. (n*n*4 크기의 배열이 생성된다) 각 노드에 접근할 때, 누적으로 사용한 거울의 개수가 저장된 값보다 작으면 갱신하고 큐에 넣기. 큐든 힙이든 둘 다 사용 가능한데 큐가 더 편해서 큐로 진행 1. 입력 import sys from collectio.. 2023. 10. 8.