2024/10/30 4

[Python] 15686번 치킨 배달

✏️ 문제 문제 파악빈 칸 중 m에 치킨집을 세울 수 있으므로 combinations을 사용해야 한다.for .. in combinations(가능한 위치 배열, 개수) 그리고 치킨 거리의 최솟값이 필요하므로 min을 사용해 코드를 짰다.  알고리즘구현브루트포스 알고리즘백트래킹 코드import sysfrom itertools import combinationsinput = sys.stdin.readlinen, m = map(int, input().split())graph = list(list(map(int, input().split())) for _ in range(n))result = 999999house = [] chickens = [] for i in range(n): for j i..

PS/백준 2024.10.30

[Python] 14502번 연구소

✏️ 문제 문제 파악바이러스가 벽을 제외하고 네 방향으로 퍼질 수 있으므로 bfs를 사용했다. 그리고 비어있는 영역 중에 3개의 영역에 벽을 세울 수 있으므로 combinations을 사용해야 한다.for .. in combinations(가능한 위치 배열, 개수) 벽을 세운 후에 남아있는 영역 중 안전 영역의 개수를 구해야 하므로 dfs를 돈 결과가 필요하다.그래서 연구소 배열을 deepcopy를 통해 여러 개의 연구소 배열을 만들고 여러 연구소 배열의 안전 영역의 개수 중 제일 많은 영역을 출력하도록 max를 사용해 코드를 짰다.  알고리즘구현그래프 이론브루트포스 알고리즘그래프 탐색너비 우선 탐색 코드import sysimport copyfrom collections import dequefrom i..

PS/백준 2024.10.30

[Python] 1966번 프린터 큐

✏️ 문제 문제 파악같은 중요도가 없다면 쉽게 풀 수 있는데 중요도가 같은 값들이 있어서 시간이 걸렸던.. 문제이다.덱에 넣을 때부터 아예 (중요도, 인덱스)로 키 값도 같이 넣어서 키 값을 기준으로 구하는 값이 맞는 지 확인하도록 했다. 그리고 max 값을 구할 때 처음에 max(q[0]) 으로 했는데 알고보니 max(q)[0] 이런 식으로 구하는 거 였다... 알고리즘구현자료 구조시뮬레이션큐 코드from collections import dequefor _ in range(int(input())): n, m = map(int, input().split()) ary = list(map(int, input().split())) order = 0 q = deque([]) for i in ra..

PS/백준 2024.10.30