본문 바로가기
반응형

{ Problem Solving }/Sorting6

[정렬] 백준 1461번 : 도서관 / 골드 5 https://www.acmicpc.net/problem/1461 1461번: 도서관 첫째 줄에 책의 개수 N과, 세준이가 한 번에 들 수 있는 책의 개수 M이 주어진다. 둘째 줄에는 책의 위치가 주어진다. N은 10,000보다 작거나 같은 자연수이고, M은 10,000보다 작거나 같다. 책의 위치 www.acmicpc.net import bisect n, m = map(int, input().split()) books = list(map(int, input().split())) books.sort() i = bisect.bisect_left(books, 0) negatives = books[:i] positives = books[i:] answer = 0 if negatives: pos = 0 whil.. 2021. 7. 19.
[정렬 문제] 백준 2170번: 선 긋기 / 골드 5 https://www.acmicpc.net/problem/2170 2170번: 선 긋기 첫째 줄에 선을 그은 횟수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 다음 N개의 줄에는 선을 그을 때 선택한 두 점의 위치 x, y(-1,000,000,000 ≤ x < y ≤ 1,000,000,000)가 주어진다. www.acmicpc.net import heapq n = int(input()) q = [] for i in range(n): n1, n2 = map(int, input().split()) heapq.heappush(q, (n1, n2)) start, end = heapq.heappop(q) answer = 0 while q: n1, n2 = heapq.heappop(q) if n1 2021. 6. 9.
[정렬 문제] 백준 2075번: N번째 큰 수 / 골드 5 https://www.acmicpc.net/problem/2075 2075번: N번째 큰 수 첫째 줄에 N(1 ≤ N ≤ 1,500)이 주어진다. 다음 N개의 줄에는 각 줄마다 N개의 수가 주어진다. 표에 적힌 수는 -10억보다 크거나 같고, 10억보다 작거나 같은 정수이다. www.acmicpc.net import heapq n = int(input()) table = [[0]*n for x in range(n)] for i in range(n): row = list(map(int, input().split())) for j in range(n): table[j][i] = row[j] q = [] for i in range(n): heapq.heappush(q, (-table[i].pop(), i)) .. 2021. 6. 9.
[정렬 문제] 백준 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.
[정렬 문제] 백준 1931번: 회의실 배정 https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 정렬과 그리디 알고리즘이 혼합된 문제다. n = int(input()) lst = [] for i in range(n): elem = list(map(int,input().split())) lst.append(elem) lst = sorted(lst, key= lambda x : (x[0], x[1])) ans = 1 end = lst[0][1] for i in range(1, len(lst)): start = lst[i][0] finish = lst[i][1] if finish < end: # overlap e.. 2021. 5. 24.
반응형