본문 바로가기

Algorithm/Graph188

[파이썬] 백준 11976 : 불켜기 (골드2) [파이썬] 백준 11976 : 불켜기 (골드2)https://www.acmicpc.net/problem/11976풀이방향성 생각시작점에서 BFS 돌리기.불을 킬 수 있으면 해당 (x,y)와 연결된 노드 (xx,yy)로 불을 켜주기.(x,y)의 인접노드 (nx,ny)에서 첫방문 + 접근 가능한 경우 큐에 추가하기.불 켜진 노드 (xx,yy) 기준에서 인접노드를 탐색하고, 새로 불 켜진 노드 (xx,yy) 주변 노드가 하나라도 V가 true인 경우 (xx,yy)를 큐에 넣으면 된다.주의점은 table[(x,y)]에서 전부 훑지 말고, 업데이트 되는 노드만 방문하도록 수정하기.정답은 갈 수 있는 곳이 아니라, 불을 켤 수 있는 곳이다. V 배열의 element 합이 아니라, access 배열 element의 .. 2025. 3. 23.
[파이썬] 프로그래머스 : 미로 탈출 명령어 (레벨3) [파이썬] 프로그래머스 : 미로 탈출 명령어 (레벨3)https://school.programmers.co.kr/learn/courses/30/lessons/150365풀이방향성 생각정해는 그리디 + 조건많은 분기?처음 위치 유형을 나누고, 최소 거리로 이동하고 남는 거리가 발생했을 때 이 거리를 d l로 우선순위를 줘서 푸는 문제인듯?근데 50 * 50 * 2500 = 625만이라 BFS도 될거같아서 비벼봤다.시간대별 맵의 배열을 3차원으로 만들기 전체코드from collections import dequedef solution(n, m, x, y, r, c, k): H,W,sy,sx,ey,ex = n,m,x-1,y-1,r-1,c-1 x_dist, y_dist = ex-sx, ey-sy .. 2025. 3. 23.
[파이썬] 백준 2146 : 다리 만들기 (골드3) [파이썬] 백준 2146 : 다리 만들기 (골드3)https://www.acmicpc.net/problem/2146풀이방향성 생각유니온파인드 / BFS백조의 호수랑 비슷한 흐름인듯?관건은 x - - x로 연결되는거랑 x - x로 연결되는걸 처리했다.각 날짜마다 테두리를 채우는데 위 두 가지 케이스를 구분했다 전체코드from collections import deque, defaultdict as ddimport sysinput = lambda : sys.stdin.readline().strip()inside = lambda x,y : 0 첫 방문이면 V에 군집 번호 boundary[(nx,ny)] += 1 V[ny][nx] = cnt .. 2025. 3. 22.
[파이썬] 백준 20390 : 완전그래프의 최소 스패닝 트리 (골드1) [파이썬] 백준 20390 : 완전그래프의 최소 스패닝 트리 (골드1)https://www.acmicpc.net/problem/20390풀이방향성 생각메모리 제한 있는줄 모르고 크루스칼 했더니 메모리 초과.범위만 보면 $O(NlogN)$ ~ $O(N^2)$까지 가능하다.항상 MST 구성에서는 크루스칼 써서 프림 알고리즘 배우면서 프림 알고리즘으로 풀이.메모리 제한 때문에 힙 쓰는 방식 대신 $O(NlogN)$으로 풀이.  전체코드import sysinput = sys.stdin.readlineINF = float('inf')N = int(input())A,B,C,D = map(int,input().split())X = list(map(int,input().split()))# MST seed : node .. 2025. 3. 19.