알고리즘/백준
-
[백준] 2579번 계단 오르기 (파이썬)
2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 코드 n = int(input()) li = [0 for i in range(301)] for i in range(n): li[i] = int(input()) s = [0 for i in range(301)] s[0] = (li[0]) s[1] = (li[0]+li[1]) s[2] = max(li[0]+li[2], li[1]+li[2]) for i in range(3,n): s[i] = max(li[i]+li[i-1]+s[i-3], s[i-2]+li[i]) print(s[n..
-
[백준] 1932번 정수 삼각형 (파이썬)
1932번: 정수 삼각형 첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다. www.acmicpc.net 코드 n = int(input()) li = [] for i in range(n): new = list(map(int, input().split())) li.append(new) for i in range(1,n): for j in range(len(li[i])): if j == 0: li[i][j] += li[i-1][j] elif j == len(li[i])-1: li[i][j] += li[i-1][len(li[i-1])-1] else: li[i][j] += max(li[i-1][j], li[i-1][j-1]) print(max(..
-
[백준] 1149번 RGB거리 (파이썬)
1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 코드 n = int(input()) li = [] for i in range(n): x, y, z = map(int, input().split()) li.append([x,y,z]) for i in range(1,len(li)): li[i][0] = min(li[i-1][1], li[i-1][2]) + li[i][0] li[i][1] = min(li[i-1][0], li[i-1][2]) + li[i][1] li[i][2] = min(li[i..
-
[백준] 9461번 파도반 수열 (파이썬)
9461번: 파도반 수열 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 www.acmicpc.net 코드 import sys n = int(input()) li = list(sys.stdin.readline().rsplit() for i in range(n)) def count(l): base = [1,1,1,2,2,3] answer = 0 for i in range(5,l-1): answer = base[i] + base[i-4] base.append(answer) print(base[l-1]) for i in li: count(int(i[0]))
-
[백준] 9184번 신나는 함수 실행 (파이썬)
9184번: 신나는 함수 실행 입력은 세 정수 a, b, c로 이루어져 있으며, 한 줄에 하나씩 주어진다. 입력의 마지막은 -1 -1 -1로 나타내며, 세 정수가 모두 -1인 경우는 입력의 마지막을 제외하면 없다. www.acmicpc.net 코드 s = [[[0 for i in range(21)] for i in range(21)] for i in range(21)] def w(a,b,c): if a 20: return w(20,20,20) if s[a][b][c]: return s[a][b][c] if a < b and b < c: s[a][b][c] = w(a,b,c -1) + w(a, b-1, c-1) - w(a, b-1, c) return s[a][b][c] s[a][b][c] = w(a-1, ..
-
[백준] 1003번 피보나치 함수 (파이썬)
1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 코드 import sys n = int(input()) li = list(sys.stdin.readline().rsplit() for i in range(n)) def count(n): zero = [1,0,1] one = [0,1,1] for i in range(3,n+1): zero.append(zero[i-1]+zero[i-2]) one.append(one[i-1]+one[i-2]) print(zero[n],one[n]) for i in li: count(int(i[0]))
-
[백준] 13305번 주유소 (파이썬)
13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net 코드 n = int(input()) length = list(map(int, input().split())) cost = list(map(int, input().split())) s = [0 for i in range(n)] low = cost[0] for i in range(n-1): if i == 0: s[i] = cost[i]*length[i] elif cost[i] < low: low = cost[i] s[i] = s[i-1] + low*le..