본문 바로가기

Algorithm/Graph188

[파이썬] 백준 16562 : 친구비 (골드4) [파이썬] 백준 16562 : 친구비 (골드4)https://www.acmicpc.net/problem/16562풀이방향성 생각기본 유니온 파인드 문제입력을 받아서 부모가 다르면 유니온을 진행한다.parent 배열을 바탕으로 각 그룹의 최소 비용을 모두 구한다.최소 비용이 K보다 작으면 비용 출력.전체코드from collections import defaultdict as ddimport sysinput = lambda : sys.stdin.readline().rstrip()def find(a): if parent[a] != a: parent[a] = find(parent[a]) return parent[a]N,M,K = map(int,input().split())costs = [.. 2024. 6. 16.
[파이썬] 프로그래머스 : 등산코스 정하기 (레벨3) [파이썬] 프로그래머스 : 등산코스 정하기 (레벨3)https://school.programmers.co.kr/learn/courses/30/lessons/118669풀이**방향성 생각기본 다익스트라 문제.시작점에서 봉우리에 도착하는 최소 강도를 구한다.현재 경로까지 강도를 힙에 넣어주면서 간선을 이동하면서 최대값을 갱신하는 경우에 최대 강도를 변경한다.입력 크기가 큰 편이라서 각 Node마다 다익스트라를 돌리면 $(NlogN)^2$라서 터져버린다.시작점 gates를 한 번에 힙에 넣고, summits에 도달할 때 마다 정답 후보에 넣는다.마지막에 answer을 정렬해주고 리턴하면 끝summits이 $50000$이라서 summits 유무를 list 대신 set으로 관리한다.또, edges의 수가 많아서 .. 2024. 6. 13.
[파이썬] 프로그래머스 : 혼자서 하는 틱택토 (레벨2) [파이썬] 프로그래머스 : 혼자서 하는 틱택토 (레벨2)https://school.programmers.co.kr/learn/courses/30/lessons/160585풀이방향성 생각맵 사이즈가 충분히 작아서 DFS/BFS로 풀 수 있다.BFS로 모든 경우의 수를 해싱으로 기록한다.전체코드from collections import dequedef solution(board): # 가로 세로 대각선 체크하기. 각 턴에 맞는 사람이 완성해야함 def over(s,atk): arr = [s[3*i:3*i+3] for i in range(3)] arr_tr = list(zip(*arr)) if atk%2 == 0: x = 'O' else: x = '.. 2024. 6. 10.
[파이썬] 백준 14948 : 군대탈출하기 (골드2) [파이썬] 백준 14948 : 군대탈출하기 (골드)https://www.acmicpc.net/problem/14948풀이방향성 생각전체코드import heapq as hqimport sysinput = lambda : sys.stdin.readline().rstrip()inside = lambda x,y: 0코멘트벽뿌랑 비슷한문제 2024. 6. 8.