백준

Algorithm/백준

백준 20300번(Python) : 서강근육맨

www.acmicpc.net/problem/20300 20300번: 서강근육맨 PT 첫째 날에 $1$과 $4$를 선택하고, 둘째 날에 $2$와 $3$을 선택하고, 마지막 날에 $5$를 선택하면 $M$은 $5$가 되며, 이때가 $M$이 최소일 때이다. www.acmicpc.net [풀이] 하루에 두개의 운동기구를 이용해야하며 마지막 날은 1개이든 2개이든 남은 것을 수행하면 된다. 하루의 근손실 정도 M이 최소가 되어야 하므로 양 끝에 있는 것을 선택하여 더하여 값을 비교하도록 하였다. 비교 이후에는 리스트에서 값을 제거하여 리스트에 계산이 안된 값만 남도록 하게했다. 마지막 날의 운동 기구 개수에 따라 2가지 경우로 나눠서 풀었는데.. 솔직히 좋은 코드라고 할 정도는 아니라고 생각한다. 코드 길이도 길고..

Algorithm/백준

백준 20115번(Python) : 에너지 드링크

www.acmicpc.net/problem/20115 20115번: 에너지 드링크 페인은 에너지 드링크를 좋아하는 회사원이다. 에너지 드링크는 카페인, 아르기닌, 타우린, 나이아신 등의 성분이 들어있어 피로 회복에 도움을 주는 에너지 보충 음료수이다. 야근을 마치고 한 www.acmicpc.net [풀이] 문제에 어떻게 최대의 양을 구해야하는지 나와있어서 정렬만 신경 써주면 된다. (내림차순 정렬) 더하는 앞의 값은 최대로, 나눠지는 수는 그다음 위치의 수로 입력되면 최대의 양을 구할 수 있다. for 반복문 안의 식은 문제에 나와있는대로 입력하면 쉽게 구할 수 있다. import sys input = sys.stdin.readline n = int(input()) arr = list(map(int,in..

Algorithm/백준

백준 1758번(Python) : 알바생 강호

www.acmicpc.net/problem/1758 1758번: 알바생 강호 첫째 줄에 스타박스 앞에 서 있는 사람의 수 N이 주어진다. N은 100,000보다 작은 자연수이다. 둘째 줄부터 총 N개의 줄에 각 사람이 주려고 하는 팁이 주어진다. 팁은 100,000보다 작거나 같은 자연수 www.acmicpc.net [풀이] 강호가 최대의 팁을 얻어야 하므로 입력받는 고객의 팁을 역순으로 정렬해서 풀면 된다. 또한 이후 강호가 받게 되는 팁이 음수가 된다면 아무것도 받지 않는 부분만 코드에 추가해 주면 된다. [코드] import sys input = sys.stdin.readline n = int(input()) arr = [int(input()) for _ in range(n)] arr.sort(re..

Algorithm/백준

백준 14916번(Python) : 거스름돈

www.acmicpc.net/problem/14916 14916번: 거스름돈 첫째 줄에 거스름돈 액수 n(1 ≤ n ≤ 100,000)이 주어진다. www.acmicpc.net [풀이] 거스름돈 동전의 개수가 최소가 되려면 5로 나눈 몫과 5로 나눈 나머지를 2로 나눈 몫을 더하면 된다. 여기서 단순히 5로 나눈 몫을 최대로 하려면 2로 나누어지지 않은 경우가 생긴다 (예제의 13이 그 예가 된다.) 그러므로 입력받는 수가 5로 나누어지지 않는다면 2를 계속 빼서 5로 나누어지는 수로 만들면 된다. [코드] import sys input = sys.stdin.readline n = int(input()) count = 0 while True: if n % 5 == 0: count += (n // 5) p..

카테고리 없음

백준 1931번(Python) : 회의실 배정

www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 끝나는 시간을 기준으로 정렬을 하는 것이 이 문제를 풀 때 생각해야할 부분이다. 정렬 이후, 그 다음 회의의 시작 시간이 현재 회의의 끝난 시간보다 더 이후이거나 같으면 count를 1 증가시켜주면 된다. import sys input = sys.stdin.readline n = int(input()) arr = [list(map(int,input().split())) for _ in range(n)] count = 0 arr.sort(key=lambda x : [x[1],x[0]]) endtime = 0 for start,e..

Algorithm/백준

백준 11508번(Python) : 2+1 세일

www.acmicpc.net/problem/11508 11508번: 2+1 세일 KSG 편의점에서는 과일우유, 드링킹요구르트 등의 유제품을 '2+1 세일'하는 행사를 하고 있습니다. KSG 편의점에서 유제품 3개를 한 번에 산다면 그중에서 가장 싼 것은 무료로 지불하고 나머지 두 www.acmicpc.net 처음에는 어떻게 할지 고민하다가 3으로 묶었을 때(나누었을 때) 나머지가 0,1,2인 경우를 나눠서 작성했는데 생각해보니 나머지가 2일 때만 제외하고 값을 더하면 될 것 같아 다시 작성하였다. 그리고 할인 되는 품목은 비싼 가격이면 좋으므로 내림차순으로 먼저 정렬을 하고 풀었다. (처음 코드는 경우를 다 구분해서 작성을 하여서 코드 길이가 너무 길었다.) import sys input = sys.st..

skyey94
'백준' 태그의 글 목록 (7 Page)