일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 11054
- Python
- itertools
- 11053
- 11057
- 매일11시
- 최소공배수
- 순열
- 괄호
- 뒤로가기
- 6603
- 11기
- 홈화면
- 코틀린
- 나머지
- permutation
- Android
- 9095
- 백준
- 파이썬
- 1260
- expo
- lcm
- Kotlin
- 1182
- LCS
- 코테
- 안드로이드
- Combination
- 앱
- Today
- Total
목록전체 글 (181)
황소개발자
총 방법의 수를 구하는 문제 dp의 정수이지.. s, a, b, c = map(int, input().split()) dp = [[[[-1 for _ in range(51)] for _ in range(51)] for _ in range(51)] for _ in range(51)] def go(n, a, b, c): if n == 0: if a == 0 and b == 0 and c == 0: return 1 else: return 0 if a < 0 or b < 0 or c < 0: return 0 if dp[n][a][b][c] != -1: return dp[n][a][b][c] dp[n][a][b][c] = 0 for i in range(2): for j in range(2): for k in ra..
포비아포비아! n = int(input()) lst = input() ans = 999999999 def go(idx, cost): global ans if idx == n - 1: ans = min(ans, cost) return now = lst[idx] if now == 'B': for i in range(idx + 1, n): if lst[i] == 'O': go(i, cost + pow(i - idx, 2)) elif now == 'O': for i in range(idx + 1, n): if lst[i] == 'J': go(i, cost + pow(i - idx, 2)) elif now == 'J': for i in range(idx + 1, n): if lst[i] == 'B': go(i, ..
재밌어..ㅋㅋ S = input().strip() n = len(S) dp = [[[[[0 for _ in range(3)] for _ in range(3)] for _ in range(51)] for _ in range(51)] for _ in range(51)] ans = [0] * 50 def go(a, b, c, p1, p2): if a < 0 or b < 0 or c < 0: return False if a == 0 and b == 0 and c == 0: return True if dp[a][b][c][p1][p2]: return False dp[a][b][c][p1][p2] = True ans[n-a-b-c] = 'A' if go(a - 1, b, c, 0, p1): return True i..
5차원 배열.. 진짜 이걸.. n, k = map(int, input().split()) dp = [[[[0 for _ in range(436)] for _ in range(31)] for _ in range(31)] for _ in range(31)] ans = [0] * 31 def go(i, a, b, p): if i == n: if p == k: return True else: return False if dp[i][a][b][p]: return False dp[i][a][b][p] = True ans[i] = 'A' if go(i + 1, a + 1, b, p): return True ans[i] = 'B' if go(i + 1, a, b + 1, p + a): return True ans[i]..
다 알고있다구 맞게 짯는데, 왜 런타임에러가 뜨냐고? 배열 최대 크기가 초과되어서? NO 재귀 max 초과야. ㅇㅋ 재귀 max를 풀 수 있어 근데 이 문제는 반복문으로 풀어보자 import sys input = sys.stdin.readline n = int(input().strip()) day = [] for i in range(n): day.append(list(map(int, input().strip().split()))) dp = [0] * 1500001 for i in range(n): if i + day[i][0]
그냥 풀리네 시간초과라도 날 줄 알았는데 싱겁게 ㅋ n = int(input()) lst = list(map(int, input().split())) dp = [-1] * n def bfs(start): q = [] q.append(start) dp[start] = 0 while q: now = q.pop(0) jump = lst[now] for i in range(jump, 0, -1): if now + i < n and dp[now + i] == -1: dp[now + i] = dp[now] + 1 q.append(now + i) bfs(0) print(dp[-1])
얼굴붉히며 딴청피던 아름답던 그 때 처럼.. mat = [] for i in range(5): mat.append(list(input().split())) lst = [] dy = [0, 0, 1, -1] dx = [1, -1, 0, 0] def go(y, x, cnt, rst): rst += mat[y][x] cnt += 1 if cnt == 6: lst.append(rst) return for i in range(4): ny = y + dy[i] nx = x + dx[i] if 0
2 의 13승은 작은 숫자 베이베 import sys import itertools input = sys.stdin.readline n, m = map(int, input().split()) mat = [] for i in range(n): mat.append(list(map(int, input().split()))) homes = [] chickens = [] for i in range(n): for j in range(n): if mat[i][j] == 1: homes.append([i, j]) elif mat[i][j] == 2: chickens.append([i, j]) combi = [i for i in range(len(chickens))] combi = list(itertools.combin..