목록ALGORITHM/SOLVE (67)
정구리의 우주정복
www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M을 www.acmicpc.net 이분 탐색을 이용한 풀이 (pypy 로 제출해야지 정답처리가 됩니다) #나무 자르기 (pypy 로 해결시 해결됨) import sys n,m = map(int,sys.stdin.readline().split()) array = list(map(int,sys.stdin.readline().split())) start = 0 end = max(array) result = 0 ..
www.acmicpc.net/problem/1654 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net 이분탐색을 이용한 풀이 #랜선 자르기 k,m = map(int,input().split()) array = [] for _ in range(k): array.append(int(input())) start = 1 end = max(array) result = 0 while (start
https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1≤N≤100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1≤M≤100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들이 A안�� www.acmicpc.net 1. 이진 탐색으로 해결한 방법 def binary_search(array,target,start,end): while start target : end = mid -1 else: start = mid +1 return None n = int(input()) array = list(map(int,input().split())) array.sort() m..
https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 카운팅 정렬을 사용해서 풀어야 하는 문제이당 카운팅 정렬은 "특정한 조건" 이 성립해야지 사용할 수 있는 정렬이다 #특별한 조건이란 ? 데이터의 크기 범위가 제한되어 정수 형태로 표현할 수 있을때 사용이 가능하다 이 문제의 경우에는 문제에 숫자의 범위가 10000까지 라고 정의되어있이 때문에 카운팅 정렬을 사용할 수 있다 시간 복잡도는 O(N+K) 로 아주아주 빠른 편 #count sort 를 이용해서 풀어보아용 ..
https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 분류 : 그리디 풀이에 핵심이 되는 점은 소요 시간이 적은 순서대로 ATM 을 이용할때 최소 시간이 걸린다는 것이다. 풀이 #ATM people = int(input()) time = list(map(int,input().split())) time.sort() result = 0 for i in range(people): count = 0 for j in range(0,i+1): count += time[j] result +=..
https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net *파이썬으로 품 **나보다 좋은 정답이 있을 수 있음 분류는 그리디 동전 값을 입력 받은 후에 sort(reverse=True) 로 내림차순 정렬을 해주는게 포인트 n,k = map(int,input().split()) coins = [] for _ in range(n): coins.append(int(input())) coins.s..
1101 : Hello, World! print("Hello, World!") 1102 : Hello, World! (줄 바꿈 버전) print("Hello,\nWorld!") 1103 : 폴더명 출력 print('"c:\\test"') 1106 : int의 범위 a = -2147483648 b = 2147483647 print(a,b) 1107 : 반복 출력하기 1 a = "" for _ in range(50): a = a+'print' print(a) 1108 : 반복 출력하기 2 a = "" for _ in range(20): a = a+'hello' a = a+' ' for _ in range(30): a = a+'world' print(a) 1109 : 보안카드 접수증 name = str(inp..
deque 에 관한 설명은 : https://j-ungry.tistory.com/189 파이썬 collections deque 함수 (덱,데크) 사용법 https://docs.python.org/3/library/collections.html#collections.deque collections — Container datatypes — Python 3.8.5 documentation collections — Container datatypes Source code: Lib/collections/.. j-ungry.tistory.com 처음에 생각한 코드 (동작은 되지만 시간초과가 남) def push(queue,value): queue.append(value) def pop(queue): value =..