백준 알고리즘108 파이썬) 백준 알고리즘 | 2156번 : 포도주 시식 n = int(input()) nums = [] dp = [0] * 10001 for i in range(n): nums.append(int(input())) dp[0] = nums[0] if len(nums) > 1: dp[1] = nums[0] + nums[1] if len(nums) > 2: dp[2] = max(nums[0]+nums[2], nums[1] + nums[2], nums[0] + nums[1]) for i in range(3,n): dp[i] = max(dp[i-3] + nums[i-1] + nums[i], dp[i-2] + nums[i], dp[i-1]) print(dp[n-1]) https://www.acmicpc.net/problem/2156 2156번: 포도주 시식 효주는 포도.. 2022. 7. 5. 파이썬) 백준 알고리즘 | 13975번 : 파일 합치기 3 https://www.acmicpc.net/problem/13975 13975번: 파일 합치기 3 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T개의 테스트 데이터로 이루어져 있는데, T는 입력의 맨 첫 줄에 주어진다.각 테스트 데이터는 두 개의 행으로 주어지는데, www.acmicpc.net 풀이 파일을 heap에 넣고 가장 작은 두 개를 빼고 더해서 다시 heap에 넣어줍니다. 그 과정에서 더한 값은 cnt에 더해주고 마지막에 cnt를 출력해주면 됩니다. import heapq t = int(input()) for _ in range(t): n = int(input()) nums = list(map(int, input().split())) heap = [] for num in n.. 2022. 7. 1. 파이썬) 백준 알고리즘 | 15903번 : 카드 합체 놀이 https://www.acmicpc.net/problem/15903 15903번: 카드 합체 놀이 첫 번째 줄에 카드의 개수를 나타내는 수 n(2 ≤ n ≤ 1,000)과 카드 합체를 몇 번 하는지를 나타내는 수 m(0 ≤ m ≤ 15×n)이 주어진다. 두 번째 줄에 맨 처음 카드의 상태를 나타내는 n개의 자연수 a1, www.acmicpc.net 풀이 우선순위 큐를 이용하여 풀었습니다. 카드 숫자를 heap 배열에 넣고 m번동안 가장 작은 힙 2개를 pop하고 더해서 다시 push하는 방식으로 구현하였습니다. import heapq n, m = map(int, input().split()) cards = list(map(int, input().split())) heap = [] for card in c.. 2022. 7. 1. 파이썬) 백준 알고리즘 | 20004번 : 베스킨라빈스 31 https://www.acmicpc.net/problem/20004 20004번: 베스킨라빈스 31 베스킨라빈스 게임은 1부터 31까지의 수를 순차적으로 한번에 1개 이상, 3개 이하 연달아 부를 수 있으며, 마지막 31을 부른 사람이 지는 게임이다. 시온이와 민우는 베스킨라빈스 게임을 하기로 www.acmicpc.net 풀이 부를 수 있는 숫자가 2인 경우에서 31이 아니라 지정한 수라고 생각하면 필승하는 사람은 1 -> 후공 2 -> 선공 3 -> 선공 4 -> 후공 이런식으로 전개가 된다. 부를 수 있는 숫자가 n일 경우에는 1 -> 후공 ... 2~ n+1 -> 선공 n+2 -> 후공 ... 이런식으로 전개가 된다. 31 에서 내가 선일 경우 31-n 중에 후공이 필승하는 전략을 쓰면 이기게 된다.. 2022. 7. 1. 이전 1 2 3 4 5 6 ··· 27 다음