[Coding Test]
[백준] 10989 파이썬(python) : 수 정렬하기 3 - (★)
https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net pypy3가 아닌 python3로 제출해야 메모리초과를 받지 않을 수 있다. import sys n = int(sys.stdin.readline()) num_list = [0] *10001 #1 for _ in range(n): num_list[int(sys.stdin.readline())] += 1 for i in range(10001): if num_list[i] != 0: #2 for j in range(num..
[백준] 2805 파이썬(python) : 나무 자르기 - (★)
https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net pypy3로 제출해야 정답판정을 받을 수 있습니다. import sys n, m = map(int, sys.stdin.readline().split()) tree = list(map(int, sys.stdin.readline().split())) res = 0 start, end = 1, max(tree) while start mid: #1 tmp += (i..
[백준] 2108 파이썬(python) : 통계학 - Counter함수
https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net from collections import Counter n = int(input()) nums = [] for _ in range(n): nums.append(int(input())) nums.sort() # 산술평균 print(round(sum(nums) / n)) #1 # 중앙값 print(nums[n//2]) #2 # 최빈값 nums_s = Counter(nums).most_common() #3 if l..
[백준] 1966 파이썬(python) : 프린터 큐
1966번: 프린터 큐 import sys t = int(sys.stdin.readline()) for _ in range(t): n, m = map(int, sys.stdin.readline().split()) paperlist = list(map(int, sys.stdin.readline().split())) checklist, cnt = [0]*n, 0 checklist[m] = 1 #1 while True: if paperlist[0] == max(paperlist): #2 cnt += 1 #3 if checklist[0] != 1: #4 del paperlist[0] del checklist[0] elif checklist[0] == 1: #5 print(cnt) break else: paper..
[백준] 1929 파이썬(python) : 소수 구하기 - (에라토스테네스의 체)
1929번: 소수 구하기 시간초과가 났던 처음 코드)m, n = map(int, input().split())res = []for i in range(m, n+1): error = 0 for j in range(2, i): if i % j == 0: error += 1 if error == 0: res.append(i)for i in res: print(i) 에라토스테네스의 체를 적용해 시간을 줄인 코드)m, n = map(int, input().split())for i in range(m, n+1): if i == 1: #1 continue for j in range(2, int(i**0.5)+1): #2 ..
[백준] 1654 파이썬(python) : 랜선 자르기 - (★)
https://www.acmicpc.net/problem/1654 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net 22.08.06 수정) import sys n, m = map(int, sys.stdin.readline().split()) lan = [ int(sys.stdin.readline()) for _ in range(n) ] start, end = 1, max(lan) #1 res = 0 while start = m: #5 res = mid #6 start = mid + ..