전체 글 12

TIL:: 0824_ boj 2156

https://www.acmicpc.net/problem/2156 2156번: 포도주 시식 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규 www.acmicpc.net n = int(input()) wine_list = [int(input()) for x in range(n)] dp = [0] dp.append(wine_list[0]) if(n > 1): dp.append(wine_list[0] + wine_list[1]) for i in range(3, n + 1): case_1 = wine_list[i - 1] + dp[i - 2] case_2 = wine_l..

TIL 0820:: boj 2579

import sys read = sys.stdin.readline n = int(read()) stairs = [0] + [int(read()) for _ in range(n)] + [0] cache = [0] * (n+2) cache[1] = stairs[1] cache[2] = cache[1] + stairs[2] for i in range(3, n+1): cache[i] = max(cache[i-2], cache[i-3] + stairs[i-1]) + stairs[i] print(cache[n]) 계단은 한번에 1~2 계단씩 오를 수 있다. 시작점은 포함하지 않고, 연속된 3개의 계단은 밟을 수 없다. 즉, 최대 2개 계단까지 연속으로 밟을 수 있다. 마지막 계단에는 반듯이 도착해야한다 현재 위치에..

TIL 0814:: boj 11048

import sys input = sys.stdin.readline n,m = map(int,input().split()) arr = [[0]*(m+1)] + [[0]+list(map(int,input().split())) for i in range(n)] dp = [[0]*(m+1) for i in range(n+1)] for i in range(1,n+1): for j in range(1,m+1): dp[i][j] = max(dp[i-1][j],dp[i][j-1])+arr[i][j] print(dp[n][m]) 당연히 bfs/dfs 중 하나라고 생각했는데…. 찾아보니 dp라는 것을 활용하는 문제였다 https://velog.io/@khjcode/알고리즘-DP-문제-풀기-파이썬#dp-란-무엇인가 알고리..

TIL::0803_boj 14620

https://www.acmicpc.net/problem/14620 14620번: 꽃길 2017년 4월 5일 식목일을 맞이한 진아는 나무를 심는 대신 하이테크관 앞 화단에 꽃을 심어 등교할 때 마다 꽃길을 걷고 싶었다. 진아가 가진 꽃의 씨앗은 꽃을 심고나면 정확히 1년후에 꽃이 피므 www.acmicpc.net # 14620: 꽃길 ```python from sys import stdin, setrecursionlimit setrecursionlimit(10 ** 9) n = int(stdin.readline()) arr = [] res = [int(1e9)] visited = set() dx, dy = [1, 0, 0, -1], [0, 1, -1, 0] for _ in range(n): arr.app..

TIL::0730_boj 11501

T = int(input()) for _ in range(T): N = int(input()) result = 0 queue = list(map(int, input().split())) while True: if len(queue)==0: break num = queue.pop() for i in range(len(queue)-1,-1,-1): if num >= queue[i]: result += (num - queue[i]) queue.pop() else: break print(result) 주식 가격의 뒤부터 탐색하여: 현재보다 싼 가격이면 팔기 비싼 가격이면 기준을 다시 비싼 가격을 기준으로 반복문을 진행 예제 1: 1 1 3 1 2 이면 2 부터 탐색하여 1이면 팔고 3이면 다시 3을 기준으로 반복.

TIL::0727_boj 2002

https://www.acmicpc.net/problem/2002 2002번: 추월 입력은 총 2N+1개의 줄로 이루어져 있다. 첫 줄에는 차의 대수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 대근이가 적은 차량 번호 목록이 주어지고, N+2째 줄부터 N개의 줄에는 영식이 www.acmicpc.net import sys input = sys.stdin.readline N = int(input()) count = 0 input_c = {} output_c = [] for i in range(N): input_c[input().rstrip()] = i for i in range(N): output_c.append(input().rstrip()) for i in range(N - 1..