[Baekjoon] 2294. 동전 2
·
코딩테스트/Python
🔗 Problem Linkhttps://www.acmicpc.net/problem/2294❔Thinkingn개 종류의 동전을 활용해서, k원을 만드는 최소한의 동전 개수를 반환한다. k원을 만들 수 없다면 -1을 반환한다.1💻Solution1. DP를 활용한 풀이import sysinput = sys.stdin.readlinen, k = map(int, input().split())coins = []for _ in range(n): coins.append(int(input().rstrip()))coins.sort()answer = [float('inf') for _ in range(k+1)]answer[0] = 0for i in range(1, k+1): for coin in coins: ..
[Programmers] Level 2. 3xn 타일링
·
코딩테스트/Python
🔗 Problem Link 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr❔Thinking2x1 타일로, 가로가 n이고 세로가 3인 공간을 채우는 방법의 수를 반환한다.답을 1,000,000,007으로 나눈 나머지를 반환해야 한다.💻Solutiondef solution(n): if n % 2 != 0: return 0 dp = [0, 0, 3, 0, 11] + [0 for _ in range(n-3)] for i in range(5, n+1): if i % 2 == 0: dp[i] += dp[i-2] * 3 + 2 for..
[Baekjoon] 14501. 퇴사
·
코딩테스트/Python
🔗 Problem Link 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net ❔Thinking 상담에 걸리는 시간과 상담에 따른 이익이 주어질 때, N+1일 이후에 얻게되는 최대 이익을 반환한다. 💻Solution n = int(input()) dp = [0] * (n+1) table = [] max_price = 0 for i in range(1, n+1): t, p = map(int, input().split()) table.append([t,p]) for i in range(n-1, -1, -1): time = table[i][0] + i if time
[Baekjoon] 1932. 정수 삼각형
·
코딩테스트/Python
🔗 Problem Link 1932번: 정수 삼각형 첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다. www.acmicpc.net ❔Thinking 정수로 이루어진 삼각형에서, 위에서 큰 수를 선택해 더해 내려와 얻게되는 가장 큰 수를 반환한다. 왼쪽 대각선 아래, 오른쪽 대각선 아래의 수만 선택하여 더할 수 있다. 💻Solution 1. 위에서 내려오는 방법 import copy n = int(input()) graph = [[]] for i in range(n): graph.append(list(map(int, input().split()))) dp = copy.deepcopy(graph) for i in range(1, n): f..
[Baekjoon] 1463 - 1로 만들기
·
코딩테스트/Python
🔗 Problem Link 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net ❔Thinking "2로 나누기 / 3으로 나누기 / 1빼기" 이 3가지 방법으로 주어진 숫자를 1로 만든다. 해당 숫자를 1로 만드는 다양한 방법 가운데, 가장 적은 횟수로 1을 만들고 그 횟수를 반환한다. 💻Solution n = int(input()) how_to_make_n = [0, 0, 1, 1] for i in range(4,n+1): if i % 3 == 0 and i % 2 == 0: how_to_make_n += [min(1+how_to_make_n[i-1], how_to_make_n[i//3] + 1, how_to_make_n[i..