목록Java (52)
rose_brown

1. 문제https://www.acmicpc.net/problem/11049 2. 코드pythonimport sysinput = sys.stdin.readlineN = int(input())M = []D = [[-1 for j in range(N+1)]for i in range(N+1)]M.append((0, 0))for i in range(N): r, c = map(int, input().split()) M.append((r, c))def execute(s, e): result = sys.maxsize if D[s][e] != -1: return D[s][e] if s == e: return 0 if s + 1 == e: return..

1. 문제https://www.acmicpc.net/problem/2342 2. 코드pythonimport sysinput = sys.stdin.readlineD = [[[sys.maxsize for k in range(5)]for j in range(5)]for i in range(100001)]mp = [[0, 2, 2, 2, 2], [2, 1, 3, 4, 3], [2, 3, 1, 3, 4], [2, 4, 3, 1, 3], [2, 3, 4, 3, 1]]s = 1D[0][0][0] = 0li = list(map(int, input().split()))index = 0while li[index] != 0: n = li[index] for i in range(..

1. 문제https://www.acmicpc.net/problem/1328 2. 코드pythonimport sysinput = sys.stdin.readlinemod = 1000000007N, L, R = map(int, input().split())D = [[[0 for k in range(101)]for j in range(101)]for i in range(101)]D[1][1][1] = 1for n in range(2, N+1): for l in range(1, L+1): for r in range(1, R+1): D[n][l][r] = ((D[n-1][l-1][r] + D[n-1][l][r-1]) + D[n-1][l][r] * (n-2)) % modprint..

1. 문제https://www.acmicpc.net/problem/1915 2. 코드pythonimport sysinput = sys.stdin.readlinen, m = map(int, input().split())D = [[0 for j in range(1001)] for i in range(1001)]MAX = 0for i in range(0, n): num = list(input()) for j in range(0, m): D[i][j] = int(num[j]) if D[i][j] == 1 and j > 0 and i > 0: D[i][j] = min(D[i-1][j-1], D[i][j-1], D[i-1][j]) + D[i][j] ..

1. 문제https://www.acmicpc.net/problem/9252 2. 코드pythonimport syssys.setrecursionlimit(10000)input = sys.stdin.readlineA = list(input())A.pop()B = list(input())B.pop()D =[[0 for j in range(len(B)+1)] for i in range(len(A)+1)]path = []for i in range(1, len(A)+1): for j in range(1, len(B)+1): if A[i-1] == B[j-1]: D[i][j] = D[i-1][j-1] + 1 else: D[i][j] = max(D[..

1. 문제https://www.acmicpc.net/problem/13398 2. 코드pythonimport sysinput = sys.stdin.readlineN = int(input())A = list(map(int, input().split()))L = [0] * NL[0] = A[0]result = L[0]for i in range(1, N): L[i] = max(A[i], L[i-1] + A[i]) result = max(result, L[i])R = [0] * NR[N-1] = A[N-1]for i in range(N-2, -1, -1): R[i] = max(A[i], R[i+1] + A[i])for i in range(1, N-1): temp = L[i-1] + R[i+..

1. 문제https://www.acmicpc.net/problem/10844 2. 코드pythonimport sysinput = sys.stdin.readlineN = int(input())mod = 1000000000D = [[0 for j in range(11)]for i in range(N+1)]for i in range(1, 10): D[1][i] = 1for i in range(2, N+1): D[i][0] = D[i-1][1] D[i][9] = D[i-1][8] for j in range(1, 9): D[i][j] = (D[i-1][j-1] + D[i-1][j+1]) % modsum = 0for i in range(10): sum = (sum + D[N]..

1. 문제https://www.acmicpc.net/problem/11726 2. 코드pythonimport sysinput = sys.stdin.readlineN = int(input())D = [0] * 10001D[1] = 1D[2] = 2mod = 10007for i in range(3, N+1): D[i] = (D[i-1] + D[i-2]) % modprint(D[N])풀이D - 타일을 붙일 수 있는 경우의 수2x1일 때 타일 경우의 수 = 12x2일 때 타일 경우의 수 = 2D[i] = D[i-1] + D[i-2]임 → 나온 결과에서 10007 나머지 연산 수행 Javaimport java.io.*;public class Main { static long mod = 10007; ..

1. 문제https://www.acmicpc.net/problem/2193 2. 코드pythonimport sysinput = sys.stdin.readlineN = int(input())D = [[0 for j in range(2)] for i in range(N+1)]D[1][1] = 1D[1][0] = 0for i in range(2, N+1): D[i][0] = D[i-1][0] + D[i-1][1] D[i][1] = D[i-1][0]print(D[N][0] + D[N][1])풀이D - 점화식 테이블, N - 자리수D[1][1] = 1 ⇒ 1은 이친수D[1][0] = 0 ⇒ 이친수는 0으로 시작X, 1자리 0으로 끝나는 이친수 Xfor i → 2 ~ Ni번째 0으로 끝나는 개수 = i-..

1. 문제https://www.acmicpc.net/problem/14501 2. 코드pythonimport sysinput = sys.stdin.readlineN = int(input())D = [0] * (N+2)T = [0] * (N+1)P = [0] * (N+1)for i in range(1, N+1): T[i], P[i] = map(int, input().split())for i in range(N, 0, -1): if i + T[i] > N + 1: D[i] = D[i+1] else: D[i] = max(D[i+1], D[i+T[i]] + P[i])print(D[1])풀이N - 남은 일수, D - 최대 수입 저장, T - 상담에 필요한 일수, P - 받..