목록전체 글 (270)
DHistory
문제 15720번: 카우버거 첫째 줄에는 주문한 버거의 개수 B, 사이드 메뉴의 개수 C, 음료의 개수 D가 공백을 사이에 두고 순서대로 주어진다. (1 ≤ B, C, D ≤ 1,000) 둘째 줄에는 각 버거의 가격이 공백을 사이에 두고 주어진 www.acmicpc.net 풀이 """ B, C, D가 각각 존재하는 경우 10% 할인 B: 버거의 개수 C: 사이드 메뉴 개수 D: 음료의 개수 최저가 출력 === example === 3 3 2 2000 3000 2500 800 1300 1000 500 1000 12100 11170 3000 + 1300 + 1000 => 5300 * 0.9 = 4770 2500 + 1000 + 500 => 4000 * 0.9 = 3600 2000 + 800 = 2800 ""..
문제 16208번: 귀찮음 현우는 무슨 이유에선지 길이 a1, ..., an의, 총 n개의 쇠막대가 필요해졌다. 하지만 그가 가진 것은 길이 a1+...+an의 하나의 쇠막대뿐이었다. 현우는 이 막대를 직접 잘라서 원래 필요하던 n개의 쇠 www.acmicpc.net 풀이 """ n개의 쇠막대 a1 + a2 + a3 + ... + an 하나의 쇠막대 x+y인 막대를 길이 x,y인 두 개의 막대로 자를 때에는 두 막대의 길이의 곱인 xy의 비용이 든다. 최소 비용은? === example === 4 3 5 4 2 => 총 14 5 9 = 45 4 5 = 20 3 2 = 6 """ n = int(input()) rods = list(map(int, input().split()))[:n] def solutio..
문제 11256번: 사탕 당신은 사탕 공장의 주인이다. 날마다, 당신은 J개의 사탕을 가게에 보내기 위해 상자에 포장해야 한다. 당신은 크기가 다른 상자 N개를 가지고 있다. 당신은 편리를 위해 상자를 최소한으로 쓰 www.acmicpc.net 풀이 """ J개의 사탕 상자에 포장 크기가 다른 상자 N개 / 최소한의 상자만 사용 (박스를 다 채울 필요는 없다.) T: 테스트 케이스 개수 j: 사탕의 개수 n: 상자의 개수 r: 세로 길이, c: 가로 길이 """ t = int(input()) def solution(j, boxes): answer = 0 boxes = sorted([a * b for a, b in boxes], reverse=True) total = 0 for box in boxes: i..
문제 1817번: 짐 챙기는 숌 첫째 줄에 책의 개수 N과 박스에 넣을 수 있는 최대 무게 M이 주어진다. N은 0보다 크거나 같고 50보다 작거나 같은 정수이고, M은 1,000보다 작거나 같은 자연수이다. N이 0보다 큰 경우 둘째 줄에 책 www.acmicpc.net 풀이 """ 책은 차례대로 박스에 넣어야한다. n: 책의 개수 m: 박스에 넣을 수 있는 최대 무게 """ n, m = map(int, input().split()) weights = [] for _ in range(min(n, 1)): weights = list(map(int, input().split()))[:n] def solution(m, weights): if not len(weights): return 0 answer = 1..
문제 6550번: 부분 문자열 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문자열 s 와 t가 빈칸을 사이에 두고 들어온다. s와 t의 길이는 10만을 넘지 않는다. www.acmicpc.net 풀이 UCPC와 동일한 문제 """ 문자열 s와 t s가 t의 부분 문자열인지 판단 부분문자열: t에서 몇 개의 문자를 제거하고 이를 순서를 바꾸지 않고 합쳤을 경우 s가 되는 경우 """ import sys def solution(s, t): index = 0 for alpha in t: if s[index] == alpha: index += 1 if index == len(s): return 'Yes' return 'No' for line in sys.std..