[Python] 백준 11053 가장 긴 증가하는 부분
코드 작성 n = int(input()) dp = [1 for _ in range(1001)] arr = list(map(int, input().split())) for i in range(n): for j in range(i): if arr[i] > arr[j]: dp[i] = max(dp[i], dp[j] + 1) print(max(dp)) 코드 풀이 # 문제풀이1 dp 테이블에는 모든 값을 1로 세팅한다. arr = [10, 20, 10, 30, 20, 50] 예를 들어, dp[3]을 구하기 위해서는 for 구문에서 i = 3, j = 0 일 때 dp[3] = max(dp[3], dp[0] + 1) 임에 따라 2가 된다 i = 3, j = 1 일 때 dp[3] = max(dp[3], dp[1] + ..
[Python] 백준 7568 덩치
코드 작성 n = int(input()) arr = [ ] for _ in range(n): x, y = map(int, input().split()) arr.append([x,y]) for i in arr: rank = 1 for j in arr: if i[0] < j[0] and i[1] < j[1]: rank += 1 print(rank, end = ' ') 코드 풀이 #. 몸무게와 키를 리스트(arr)에 넣는데, arr = [[x0, y0], [x1,y1], [x2,y2]...] 이와 같은 방식으로 넣는다. rank를 1로 기록하고 i가 0일때 j가 0,1,2,3,4와 비교하고 rank를 1씩 증가시키고 rank를 출력한다. 마찬가지로 i가 1일때 j가 0,1,2,3,4와 비교한다.
[Python] 백준 15990 1,2,3더하기5
https://www.acmicpc.net/problem/15990 15990번: 1, 2, 3 더하기 5 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 1,000,000,009로 나눈 나머지를 출력한다. www.acmicpc.net 코드 작성 dp = [[0 for _ in range(3)] for _ in range(100001)] dp[1] = [1,0,0] dp[2] = [0,1,0] dp[3] = [1,1,1] mod = 1000000009 for i in range(4, 100001): dp[i][0] = (dp[i-1][1] + dp[i-1][2])%mod dp[i][1] = (dp[i-2][0] + dp[i-2][2])%mod dp[i][2] = (dp[i-3][..