전체 글 (208) 썸네일형 리스트형 소가 길을 건너간 이유 3 (백준 14469) 이웃 농장의 소가 길을 마구잡이로 건너는 것에 진절머리가 난 존은 극단의 결정을 내린다. 농장 둘레에 매우 큰 울타리를 짓는 것이다. 이렇게 하면 근처 농장 출신의 소가 들어올 일이 거의 없다. 이 일로 주변 소들이 분개하였다. 친구네 집에 놀러 갈 수 없을 뿐만 아니라, 매년 참가하던 국제 젖 짜기 올림피아드에도 올해는 참가할 수 없게 되었기 때문이다. 이웃 농장의 소 중 존의 농장에 방문할 수 있는 소가 조금 있긴 하지만, 그들도 안심할 수 있는 건 아니다. 존의 농장에 들어가는 문은 하나밖에 없고, 그 문을 통과하려면 감시관의 길고 긴 검문을 받아야 한다. 여러 마리의 소가 한 번에 들어가려고 하면 줄이 그 만큼 길어진다. N마리의 소가 이 농장에 방문하러 왔다. 소가 도착한 시간과 검문받는 데 걸.. 총깡 총깡(백준 14618) 전형적인 다익스트라 알고리즘 문제이다. import heapq import sys input = sys.stdin.readline inf = int(1e9) n,m = map(int, input().split()) originhouse = int(input()) k = int(input()) a_house = list(map(int, input().split())) b_house = list(map(int, input().split())) gra=[[] for i in range(n+1)] dist = [inf for _ in range(n+1)] for i in range(m): a,b,c = map(int, input().split()) gra[a].append((b,c)) gra[b].append(.. 햄버거 분배(백준 19941) 사람을 기준으로 자신 왼쪽의 햄버거부터 만약 남아있는 경우 먹으면 된다. import sys input = sys.stdin.readline n,k =map(int , input().split()) arr=list(map(str, input().rstrip())) cnt = 0 check = [0]*(n) for i in range( n): if arr[i] == 'P': for j in range(-k , k+1 ) : if (j== 0) or (i+j >= n) or(i+j 증가 수열(백준 30236) 새로 만들어야 하는 수열이 1부터 시작하여 자연수만을 사용해서 증가 수열을 이뤄야 한다. 각각의 경우를 고려해서 반복문을 작성한다. import sys input = sys.stdin.readline n = int(input()) for _ in range(n): num =int(input()) a_arr =list(map(int, input().split())) b_arr = [] toadd = 1 i = 0 while True : if toadd 떡국(백준 20937) 그릇의 크기가 같은 경우에는 같이 쌓을 수 없으니 다른 열에 쌓아야 한다. 그래서 dictionary 만들어서 정렬해준다. import sys input = sys.stdin.readline n = int(input()) # num_dict ={1: 3 , 2: 12, 3: 8 } num_dict ={} arr = list(map(int, input().split())) for i in range(len(arr)) : if arr[i] not in num_dict : num_dict[arr[i]] = 1 else : num_dict[arr[i]] += 1 num_dict=sorted(num_dict.items(), key = lambda x : -x[1]) print(num_dict[0][1]) 적어도 대부분의 배수( 백준 1145) 입력 받은 숫자들에서 조합을 사용하여 3개의 수를 택하는 경우를 모두 고려해 보고 답을 정해야 한다. import sys input = sys.stdin.readline maxnum = int(1e9) def find(a,b,c) : multi = 1 big = max(a,b,c) ans = big while True : # big *= multi # print(f"it is big {ans}") if ans %a ==0 and ans%b==0 and ans%c == 0 : break ans += big return ans def pick(idx) : global maxnum if len(select)== 3 : maxnum = min(find(select[0] , select[1] , select[2].. 다리 만들기2(백준 17472) MST를 만드는 것도 중요하지만 그 전에 입력받은 섬들 간의 만들 수 있는 다리들을 구하는 것이 더 중요하다. 섬 하나하나의 좌표에 대해서 4방향에 대해서 모두 도달 가능한 다른 섬을 찾아야 하는 과정이 필요하다. 처음에는 섬인 좌표들 중에서 x혹은 y 좌표가 같은 경우에만 계산하려 하니 다시 수정하기가 어려웠다. #틀린코드 import sys from collections import deque input =sys.stdin.readline def find(a) : if a!= parent[a] : parent[a] = find(parent[a]) return parent[a] def union(a,b) : if a >=b : parent[a] = b else : parent[b] = a def isl.. 라디오 (백준 3135) 즐겨찾기로 등록된 채널과 가고자 하는 채널의 차이를 기준으로 비교한다. import sys input = sys.stdin.readline a,b = map(int, input().split()) n =int(input()) gap = abs(a-b) origin = gap arr =[] for i in range(n): direct = int(input()) arr.append(direct) if gap > abs(direct-b) : gap = abs(direct-b) if gap ==origin : print(gap) else : print(gap+1 ) 이전 1 ··· 14 15 16 17 18 19 20 ··· 26 다음