반응형 Problem Solving232 [DFS, BFS] 백준 11724번: 연결 요소의 개수 https://www.acmicpc.net/problem/11724 11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주 www.acmicpc.net import collections n, m = map(int, input().split()) graph = collections.defaultdict(list) for i in range(m): u,v = map(int, input().split()) graph[u].append(v) graph[v].append(u) discovere.. 2021. 5. 29. [DFS, BFS] 백준 1697번: 숨바꼭질 https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net import collections n, k = map(int, input().split()) q = collections.deque() q.append(n) discovered = [n] count = 0 while q: for i in range(len(q)): cur = q.popleft() if cur == k: print(count) quit() next = [c.. 2021. 5. 29. [그리디] 백준 2437번: 저울 https://www.acmicpc.net/problem/2437 2437번: 저울 하나의 양팔 저울을 이용하여 물건의 무게를 측정하려고 한다. 이 저울의 양 팔의 끝에는 물건이나 추를 올려놓는 접시가 달려 있고, 양팔의 길이는 같다. 또한, 저울의 한쪽에는 저울추들만 놓 www.acmicpc.net 생각해내기 정말정말 어렵다..... 그리디인지도 잘 모르겠고.... n = int(input()) nums = list(map(int, input().split())) nums.sort() answer = nums[0] if answer != 1: print(1) quit() for i in range(1, len(nums)): new = nums[i] if new - answer 즉 new 가 x+1 이하.. 2021. 5. 28. [정렬 문제] 백준 1744번: 수 묶기 https://www.acmicpc.net/problem/1744 1744번: 수 묶기 길이가 N인 수열이 주어졌을 때, 그 수열의 합을 구하려고 한다. 하지만, 그냥 그 수열의 합을 모두 더해서 구하는 것이 아니라, 수열의 두 수를 묶으려고 한다. 어떤 수를 묶으려고 할 때, 위치에 www.acmicpc.net n = int(input()) negative = [] zero = [] positive = [] for i in range(n): num = int(input()) if num > 0: positive.append(num) elif num < 0: negative.append(num) else: zero.append(num) negative.sort() positive.sort(reverse=.. 2021. 5. 28. [정렬 문제] 백준 5052번: 전화번호 목록 https://www.acmicpc.net/problem/5052 5052번: 전화번호 목록 첫째 줄에 테스트 케이스의 개수 t가 주어진다. (1 ≤ t ≤ 50) 각 테스트 케이스의 첫째 줄에는 전화번호의 수 n이 주어진다. (1 ≤ n ≤ 10000) 다음 n개의 줄에는 목록에 포함되어 있는 전화번호가 www.acmicpc.net 첫 시도) test = int(input()) def check(lst): for i in range(len(lst)): length = len(lst[i]) for j in range(i + 1, len(lst)): if lst[i] == lst[j][:length]: return 'NO' return 'YES' for _ in range(test): n = int(inp.. 2021. 5. 28. [구현 문제] 백준 14500번: 테트로미노 https://www.acmicpc.net/problem/14500 x_lim, y_lim = map(int, input().split()) t = [] for i in range(x_lim): t.append(list(map(int,input().split()))) answer = 0 #block 1 for i in range(x_lim): for j in range(y_lim-3): num = t[i][j]+t[i][j+1]+t[i][j+2]+t[i][j+3] if answer < num: answer = num for i in range(x_lim-3): for j in range(y_lim): num = t[i][j]+t[i+1][j]+t[i+2][j]+t[i+3][j] if answer < nu.. 2021. 5. 28. 이전 1 ··· 22 23 24 25 26 27 28 ··· 39 다음 반응형