문제풀이

·문제풀이/DP
15993번: 1, 2, 3 더하기 8첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 100,000보다 작거나 같다.www.acmicpc.net 코드dp = [[0]*2 for _ in range(100001)] # 홀수, 짝수dp[1][0] = 1dp[2][0] = 1dp[2][1] = 1dp[3][0] = 2dp[3][1] = 2for i in range(4, 100001): dp[i][0] = (dp[i-1][1]+dp[i-2][1]+dp[i-3][1]) % 1_000_000_009 dp[i][1] = (dp[i-1][0]+dp[i-2][0]+dp[i-3][0]) % 1_000_000_009for _ in ..
·문제풀이/DP
2157번: 여행첫째 줄에 N(1 ≤ N ≤ 300), M(2 ≤ M ≤ N), K(1 ≤ K ≤ 100,000)가 주어진다. K는 개설된 항공로의 개수이다. 다음 K개의 줄에는 각 항공로에 대한 정보를 나타내는 세 정수 a, b, c(1 ≤ a, b ≤ N, 1 ≤ c ≤ 1www.acmicpc.net 코드import sysinput = sys.stdin.readlinen, m, k = map(int, input().split())path = [[-1]*(n+1) for _ in range(n+1)] # path[i][j] : i->j로 갈 때 기내식 점수for _ in range(k): a, b, c = map(int, input().split()) if ..
6588번: 골드바흐의 추측 각 테스트 케이스에 대해서, n = a + b 형태로 출력한다. 이때, a와 b는 홀수 소수이다. 숫자와 연산자는 공백 하나로 구분되어져 있다. 만약, n을 만들 수 있는 방법이 여러 가지라면, b-a가 가장 큰 www.acmicpc.net 코드 #include #include const int MAX = 1000001; int is_prime[1000001]; void prime(int n){ is_prime[0] = 1; is_prime[1] = 1; for(int i=2;i
2933번: 미네랄 창영과 상근은 한 동굴을 놓고 소유권을 주장하고 있다. 두 사람은 막대기를 서로에게 던지는 방법을 이용해 누구의 소유인지를 결정하기로 했다. 싸움은 동굴에서 벌어진다. 동굴에는 미네랄 www.acmicpc.net 코드 from collections import deque r, c = map(int, input().split()) board = [list(input()) for _ in range(r)] n = int(input()) heights = list(map(int, input().split())) dir = 1 dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] def drop(sx, sy): # BFS => 클러스터 찾기 q = deque([(sx, sy)]..
1303번: 전쟁 - 전투 첫째 줄에는 전쟁터의 가로 크기 N, 세로 크기 M(1 ≤ N, M ≤ 100)이 주어진다. 그 다음 두 번째 줄에서 M+1번째 줄에는 각각 (X, Y)에 있는 병사들의 옷색이 띄어쓰기 없이 주어진다. 모든 자리에는 www.acmicpc.net 코드 from collections import deque n, m = map(int, input().split()) board = [input() for _ in range(m)] visited = [[False]*n for _ in range(m)] power = {"W": 0, "B": 0} # 각 나라의 병사의 위력의 합 def bfs(x, y, color): dx = [0, 0, -1, 1] dy = [-1, 1, 0, 0] q..
딜레이레이
'문제풀이' 카테고리의 글 목록 (13 Page)