일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Android
- Kotlin
- lcm
- 11053
- 백준
- 파이썬
- 9095
- 안드로이드
- 홈화면
- 11054
- 최소공배수
- 6603
- 코틀린
- 괄호
- 코테
- 1182
- Combination
- Python
- 1260
- expo
- 나머지
- 매일11시
- permutation
- itertools
- LCS
- 11기
- 뒤로가기
- 11057
- 순열
- 앱
- Today
- Total
목록백준 문제 풀이 (154)
황소개발자
재밌어..ㅋㅋ 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..
지금시각 새벽 3시 53분 앞에 두 숫자를 조작해준다 그 경우의 수는 9가지. import sys input = sys.stdin.readline n = int(input()) B = list(map(int, input().split())) if n == 1: print(0) exit() def check(first, second, b): diff = second - first new = [first + diff * i for i in range(len(b))] flag = True change = 0 for i in range(2, len(b)): if abs(new[i] - b[i]) > 1: return [False, change] if new[i] == b[i]: pass else: change ..
짬밥이 늘어버린겨.. go 함수로 일단 lst 함수에 어떤 연산을 먼저할건지 정하고 stack 이용해서 우선연산 계싼처리 그후 한번 더 계싼처리 ans = 0 으로 초기화해서 살짝 반례찾았었네.. 최소값은 -999999999 n = int(input()) given = input() op = [0] * ((n - 1) // 2) lst = [] def go(idx, flag, hist): if idx == (n - 1) // 2: lst.append(hist) return if flag: go(idx + 1, False, hist + [0]) else: go(idx + 1, True, hist + [1]) go(idx + 1, False, hist + [0]) go(0, False, []) def cal..