www.acmicpc.net/problem/20300 20300번: 서강근육맨 PT 첫째 날에 $1$과 $4$를 선택하고, 둘째 날에 $2$와 $3$을 선택하고, 마지막 날에 $5$를 선택하면 $M$은 $5$가 되며, 이때가 $M$이 최소일 때이다. www.acmicpc.net [풀이] 하루에 두개의 운동기구를 이용해야하며 마지막 날은 1개이든 2개이든 남은 것을 수행하면 된다. 하루의 근손실 정도 M이 최소가 되어야 하므로 양 끝에 있는 것을 선택하여 더하여 값을 비교하도록 하였다. 비교 이후에는 리스트에서 값을 제거하여 리스트에 계산이 안된 값만 남도록 하게했다. 마지막 날의 운동 기구 개수에 따라 2가지 경우로 나눠서 풀었는데.. 솔직히 좋은 코드라고 할 정도는 아니라고 생각한다. 코드 길이도 길고..
www.acmicpc.net/problem/20115 20115번: 에너지 드링크 페인은 에너지 드링크를 좋아하는 회사원이다. 에너지 드링크는 카페인, 아르기닌, 타우린, 나이아신 등의 성분이 들어있어 피로 회복에 도움을 주는 에너지 보충 음료수이다. 야근을 마치고 한 www.acmicpc.net [풀이] 문제에 어떻게 최대의 양을 구해야하는지 나와있어서 정렬만 신경 써주면 된다. (내림차순 정렬) 더하는 앞의 값은 최대로, 나눠지는 수는 그다음 위치의 수로 입력되면 최대의 양을 구할 수 있다. for 반복문 안의 식은 문제에 나와있는대로 입력하면 쉽게 구할 수 있다. import sys input = sys.stdin.readline n = int(input()) arr = list(map(int,in..
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..
- 티스토리에 백준 문제 풀이를 하거나 코드를 포스팅 할 일이 있을 때 코드블럭의 여러 테마를 적용하고 싶은 마음이 다들 있을 것 같습니다. 저도!! 이제 최근에 코드를 하나씩 올리기 시작하면서 가끔 코드 블럭의 테마를 바꾸고 어떤게 뭐가.. 이쁜가..??하면서 테마를 적용시켜 보곤 합니다. 그래서 이번 기회에 기본 테마뿐만이 아니라 다른 다양한 테마를 적용하는 방법도 적어보겠습니다. ※ 방법 1 (기본 티스토리 플러그인 테마 적용) - 먼저 플러그인에 들어가서 [코드 문법 강조]를 클릭합니다. (참고로 플러그인은 관리자 화면에 들어가면 좌측 하단에 있습니다!) - 테마를 설정한 후, 적용을 누르면 티스토리 코드블럭에 바로 적용이 됩니다. (기본 테마 : Atom One Dark / Atom One Li..
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..
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..