목록Algorithm (15)
킹솔이
n = int(input()) for _ in range(n): m = int(input()) li = list(map(int, input().split())) li.sort() result = 0 for i in range(2, m): temp = li[i]-li[i-2] result = max(temp,result) print(result)
import sys from collections import deque n, m, v = map(int, input().split()) graph = [] for i in range(n+1): graph.append([]) for i in range(m): x, y = map(int, sys.stdin.readline().split()) graph[x].append(y) graph[y].append(x) for i in range(n+1): graph[i].sort() visited = [False for i in range(n+1)] def dfs(x): visited[x] = True print(x, end=" ") for i in graph[x]: if not visited[i]: dfs(i) d..
from _collections import deque f, s, g, u, d= map(int, input().split()) visited = [0 for _ in range(f+1)] def bfs(): que = deque() que.append(s) visited[s] = 1 while que: floor = que.popleft() if floor==g: return visited[g]-1 #up if floor+u = 1 and not visited[floor-d]: que.append(floor-d) visited[floor-d] = visited[floor]+1 return "use the stairs" print(bfs()) BFS를 이용하면 된다. queue는 멀티스레드용 모듈이라 매..
import sys li = [] ans = 0 n = int(input()) for i in range(n): start, end = map(int, sys.stdin.readline().split()) # 입력때문에 시간초과 났음 li.append((start, end)) li.sort() prevStart, prevEnd = li[0][0], li[0][1] for i in range(1, n): start, end = li[i][0], li[i][1] if start
n, m = map(int, input().split()) graph = [[] for i in range(n)] visited = [0 for i in range(n)] result = [0] for i in range(m): a, b = map(int, input().split()) graph[a].append(b) graph[b].append(a) def dfs(x, f): visited[x] = 1 if f==5: result[0] = 1 return for i in graph[x]: if visited[i]==0: dfs(i, f+1) visited[i] = 0 for i in range(n): dfs(i, 1) visited[i] = 0 if result[0] == 1: break print(..
import sys from _collections import deque visited = {} a, b, c, d = map(int, sys.stdin.readline().split()) def bfs(): queue = deque() queue.append((0,0)) visited[(0,0)] = 1 if c==0 and d==0: return 0 while queue: x, y = queue.popleft() #Fill A if not visited.get((a, y)): queue.append((a, y)) visited[(a, y)] = visited[(x, y)] + 1 #Fill B if not visited.get((x, b)): queue.append((x, b)) visited[(x..
www.acmicpc.net/problem/1202 import sys from queue import PriorityQueue n, k = map(int, sys.stdin.readline().split()) MV = [] C = [] for i in range(n): a,b = map(int, sys.stdin.readline().split()) MV.append((a,b)) for i in range(k): C.append(int(sys.stdin.readline())) MV.sort() C.sort() result = 0 index = 0 que = PriorityQueue() for i in C: while index < n and MV[index][0]
computerNo = int(input()) pairNo = int(input()) graph = [] for i in range(101): graph.append([]) answer = [0] * 101 answer[1] = 1 for i in range(pairNo): a, b = map(int, input().split()) graph[a].append(b) graph[b].append(a) def dfs(x): for i in graph[x]: if answer[i]==0: answer[i]=1 dfs(i) dfs(1) print(answer.count(1)-1)
www.acmicpc.net/problem/2891 2891번: 카약과 강풍 첫째 줄에 팀의 수 N, 카약이 손상된 팀의 수 S, 카약을 하나 더 가져온 팀의 수 R이 주어진다. (2 ≤ N ≤ 10, 1 ≤ S, R ≤ N) 둘째 줄에는 카약이 손상된 팀의 번호가 주어진다. 팀 번호는 중복되지 않 www.acmicpc.net N,S,R = map(int, input().split()) #팀 수는 필요 없어서 덮어썼다 S = list(map(int, input().split())) # 카약이 손상된 팀 번호 R = list(map(int, input().split())) # 카약이 남는 팀 번호 result = 0 # 출발하지 못하는 팀 수 for i in S: if i-1 in R: R.remove(i..
#include #include #include using namespace std; int solution(vector cookie) { int answer = 0; int n = cookie.size(); vector sum(n); int son1; int son2; int temp; sum[0] = cookie[0]; for (int i = 1; i < n; i++) sum[i] = sum[i - 1] + cookie[i]; sum.insert(sum.begin(), 0); for (int r = 2; r < n+1; r++) { for (int m = 1; m < r; m++) { son1 = sum[r] - sum[m]; if (son1 < answer) continue; for (int l =..