본문 바로가기

알고리즘60

[Python] 백준 13164: 행복 유치원 13164번: 행복 유치원 (acmicpc.net) 13164번: 행복 유치원 행복 유치원 원장인 태양이는 어느 날 N명의 원생들을 키 순서대로 일렬로 줄 세우고, 총 K개의 조로 나누려고 한다. 각 조에는 원생이 적어도 한 명 있어야 하며, 같은 조에 속한 원생들은 서로 www.acmicpc.net 길이의 간격이 높은 수를 k-1개 제거하면 된다. n, k = map(int, input().split()) kids = list(map(int, input().split())) tmp = [] for i in range(1, len(kids)): tmp.append(kids[i]-kids[i-1]) tmp.sort(reverse=True) print(sum(tmp[k-1:])) 2021. 9. 14.
[Python] 백준 1826: 연료채우기 1826번: 연료 채우기 (acmicpc.net) 1826번: 연료 채우기 첫째 줄에 주유소의 개수 N(1 ≤ N ≤ 10,000)가 주어지고 두 번째 줄부터 N+1번째 줄 까지 주유소의 정보가 주어진다. 주유소의 정보는 두개의 정수 a,b로 이루어 져 있는데 a(1 ≤ a ≤ 1,000,000)는 성경 www.acmicpc.net 1. 거리순으로 정렬을 해준다. 2. 마을에 도착할때마다 연료를 최대힙으로 넣어준다. 3. 마을에 도착할때 연료가 부족하면 힙에 있는 연료를 높은순으로 넣어준다. 4. 힙의 길이가 0 이고 연료가 부족하면 -1을 출력한다. import sys import heapq n = int(input()) info = [list(map(int, input().split())) for _.. 2021. 9. 14.
[Python] 백준 2613: 숫자구슬 2613번: 숫자구슬 (acmicpc.net) 2613번: 숫자구슬 첫째 줄에 구슬의 개수 N과 그룹의 수 M이 주어진다. 둘째 줄에는 각 구슬이 적혀진 숫자가 왼쪽부터 차례로 주어진다. N은 300 이하의 자연수, M은 N이하의 자연수이며, 구슬에 적혀진 숫자는 100 www.acmicpc.net 1. 이분탐색으로 구현하는 문제이다. 2. left 값을 공의 최솟값 right값을 모든공의 합으로 탐색한다. 3. 정답은 공의 최댓값보다는 커야한다. 4. (최댓값이 최소가 되도록 하는 경우가 둘 이상이라면 그 중 하나만을 출력한다.) 라고 명시되어 있기 때문에 공의 그룹이 m 보다 작을경우 공을 계속해서 쪼개준다. import math ans = 0 n, m = map(int, input().split().. 2021. 9. 14.
[Python] 백준 16120번: PPAP 16120번: PPAP (acmicpc.net) 16120번: PPAP 첫 번째 줄에 문자열이 주어진다. 문자열은 대문자 알파벳 P와 A로만 이루어져 있으며, 문자열의 길이는 1 이상 1,000,000 이하이다. www.acmicpc.net 1. P에서 시작하므로 길이는 1 + 3*x이다. 2. P를 만날때 마다 tmp를 올려준다. 3. A를 만났을때 tmp가 2이상이고 뒤의 문자가 P이면 tmp를 2 내려준다. 4. 마지막 tmp의 길이가 1이아니면 정답이아니다. s = input() tmp = 0 ans = 'PPAP' if len(s) % 3 == 1: for i in range(len(s)): if s[i] == 'A': if i+1 = 2 and s[i+1] ==.. 2021. 9. 14.