프로그래밍 198

프로그래머스 디스크 컨트롤러

https://programmers.co.kr/learn/courses/30/lessons/42627 코딩테스트 연습 - 디스크 컨트롤러 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를 programmers.co.kr 음... 난 이런 류의 문제에 약한걸까.. 진정한 뇌정지가 와서 아예 모르겠었다.. 어떻게든 다른분의 풀이를 참고하지 않고 풀어보려고 했으나 한번 막힌 머리는 돌아갈줄을 몰랐다.. 이런 문제를 한번씩 접할때마다 좌절스럽다 그래도 어쨌든.. 풀이를 보고 어떻게 해야하는지 이해하였다. 앞으로 이런 유형의 문제를 또 만났을 때 풀어낼 수 있도록 확실히 이해하고 ..

프로그래머스 베스트앨범 파이썬

https://programmers.co.kr/learn/courses/30/lessons/42579 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr def solution(genres, plays): answer = [] dic = {} for i in range(len(genres)): genre = genres[i] if genre not in dic: dic[genre] = [plays[i], (plays[i], i)] else: dic[genre][0] += plays[i] dic[genre].ap..

백준 14464 파이썬***

더보기 https://www.acmicpc.net/problem/14464 14464번: 소가 길을 건너간 이유 4 첫 줄에 C와 N이 주어진다. 다음 C줄에는 T1…TC가 주어지고, 그 다음 N줄에는 Aj와 Bj(Aj ≤ Bj)가 주어진다. A, B, T는 모두 최대 1,000,000,000인 음이 아닌 정수이고, 같을 수도 있다. www.acmicpc.net import sys C, N = map(int, sys.stdin.readline().rstrip().split()) chickens = [int(sys.stdin.readline().rstrip()) for _ in range(C)] chickens = sorted(chickens) cows = [list(map(int, sys.stdin.re..

백준 14464 파이썬

https://www.acmicpc.net/problem/14464 14464번: 소가 길을 건너간 이유 4 첫 줄에 C와 N이 주어진다. 다음 C줄에는 T1…TC가 주어지고, 그 다음 N줄에는 Aj와 Bj(Aj ≤ Bj)가 주어진다. A, B, T는 모두 최대 1,000,000,000인 음이 아닌 정수이고, 같을 수도 있다. www.acmicpc.net import sys import heapq C, N = map(int, sys.stdin.readline().rstrip().split()) chickens = [] for _ in range(C): heapq.heappush(chickens, int(sys.stdin.readline())) cows = [] for _ in range(N): s, e ..

백준 14698 파이썬

https://www.acmicpc.net/problem/14698 14698번: 전생했더니 슬라임 연구자였던 건에 대하여 (Hard) 각 테스트 케이스마다 슬라임을 끝까지 합성했을 때 청구될 비용의 최솟값을 1, 000, 000, 007로 나눈 나머지를 출력한다. 전기 에너지가 전혀 필요하지 않은 경우엔 1 을 출력한다. www.acmicpc.net import sys import heapq T = int(sys.stdin.readline()) for _ in range(T): N = int(sys.stdin.readline()) energies = list(map(int, sys.stdin.readline().rstrip().split())) heapq.heapify(energies) if len(e..

백준 1826 파이썬**

https://www.acmicpc.net/problem/1826 1826번: 연료 채우기 첫째 줄에 주유소의 개수 N(1 ≤ N ≤ 10,000)가 주어지고 두 번째 줄부터 N+1번째 줄 까지 주유소의 정보가 주어진다. 주유소의 정보는 두개의 정수 a,b로 이루어 져 있는데 a(1 ≤ a ≤ 1,000,000)는 성경 www.acmicpc.net import heapq import sys N = int(sys.stdin.readline()) gas_stations = [] for _ in range(N): a, b = map(int, sys.stdin.readline().rstrip().split()) heapq.heappush(gas_stations, (a, b)) remain_distance, re..

백준 11000 파이썬

https://www.acmicpc.net/problem/11000 11000번: 강의실 배정 첫 번째 줄에 N이 주어진다. (1 ≤ N ≤ 200,000) 이후 N개의 줄에 Si, Ti가 주어진다. (0 ≤ Si < Ti ≤ 109) www.acmicpc.net import sys import heapq N = int(sys.stdin.readline()) class_list = [] for _ in range(N): S, T = map(int, sys.stdin.readline().rstrip().split()) class_list.append((S, T)) class_list.sort() # print(class_list) q = [] for c in class_list: if q and q[0]

백준 2012 파이썬**

https://www.acmicpc.net/problem/2012 2012번: 등수 매기기 첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 500,000) 둘째 줄부터 N개의 줄에 걸쳐 각 사람의 예상 등수가 순서대로 주어진다. 예상 등수는 500,000 이하의 자연수이다. www.acmicpc.net import sys N = int(sys.stdin.readline()) R = [] for _ in range(N): R.append(int(sys.stdin.readline())) R.sort() ans = 0 for i in range(1, N + 1): ans += abs(i - R[i - 1]) print(ans) 간단하게 생각하면 될 문제인데, 첫단추를 잘못끼워서 그런지 많이 헤맸다. 1. 받..

백준 1781 파이썬**

https://www.acmicpc.net/problem/1781 1781번: 컵라면 상욱 조교는 동호에게 N개의 문제를 주고서, 각각의 문제를 풀었을 때 컵라면을 몇 개 줄 것인지 제시 하였다. 하지만 동호의 찌를듯한 자신감에 소심한 상욱 조교는 각각의 문제에 대해 데드라 www.acmicpc.net import sys import heapq if __name__ == '__main__': N = int(sys.stdin.readline()) exam_info = [] for _ in range(N): d, c = map(int, sys.stdin.readline().rstrip().split()) exam_info.append((d, c)) exam_info.sort() q = [] for exam ..

백준 1202 파이썬**

https://www.acmicpc.net/problem/1202 1202번: 보석 도둑 첫째 줄에 N과 K가 주어진다. (1 ≤ N, K ≤ 300,000) 다음 N개 줄에는 각 보석의 정보 Mi와 Vi가 주어진다. (0 ≤ Mi, Vi ≤ 1,000,000) 다음 K개 줄에는 가방에 담을 수 있는 최대 무게 Ci가 주어진다. (1 ≤ Ci www.acmicpc.net import heapq import sys if __name__ == '__main__': N, K = map(int, input().split()) jewels = [] bags = [] for _ in range(N): M, V = map(int, sys.stdin.readline().rstrip().split()) heapq.hea..