본문 바로가기

컴퓨터/백준 문제풀이20

1012 유기농 배추, 1325 효율적인 해킹, 10282 해킹 1012 유기농 배추, 1325 효율적인 해킹, 10282 해킹 1012 유기농 배추 import sys sys.setrecursionlimit(100000) def dfs(v, w): visited[v][w] = True directions = [(-1, 0), (1, 0), (0, -1), (0, 1)] for dx, dy in directions: nx, ny = v + dx, w + dy if nx = n or ny = m: continue if adj[nx][ny] and not visited[nx][ny]: dfs(nx, ny) for _ in range(int(input())): m, n, k = map(int, input().split()) visit.. 2020. 10. 8.
1260 DFS와 BFS, 1697 숨바꼭질, 2606 바이러스 1260 DFS와 BFS, 1697 숨바꼭질, 2606 바이러스 1260 DFS와 BFS from collections import deque def dfs(v): print(v, end=' ') visited[v] = True for e in adj[v]: if visited[e] == False: dfs(e) def bfs(v): q = deque([v]) while q: v = q.popleft() if visited[v] == False: visited[v] = True print(v, end=' ') for e in adj[v]: if visited[e] == False: q.append(e) n, m, v = map(int, input().split()) adj = [[] for _ in ra.. 2020. 10. 7.
9251 LCS, 1495 기타리스트, 2655 가장높은탑쌓기 9251 LCS, 1495 기타리스트, 2655 가장높은탑쌓기 9251 LCS x = input() y = input() dp = [[0] * (len(y) + 1) for _ in range(len(x) +1) for i in ragne(1, len(x)+1): for j in range(1, len(y)+1): if x[i-1] == y[j-1]: dp[i][j] = dp[i-1][j-1] + 1 else: dp[i][j] = max(dp[i][j-1], dp[i-1][j]) print(dp[len(x)][len(y)]) - 0으로 이루어진 행렬 만든 후 각 행과 열에 개별적인 수치를 이용하여 행렬을 채움 1495 기타리스트 # n개 곡 연주 # 매번 곡이 시작하기 전 볼륨 변경 # 다음 곡의 크기만.. 2020. 10. 5.
1904 01타일, 12865 평범한 배낭, 11053 가장 긴 증가하는 부분 수열 1904 01타일, 12865 평범한 배낭, 11053 가장 긴 증가하는 부분 수열 1904 01타일 # 첫번째 풀이(시간 초과) n = int(input()) a = 1 b = 2 temp = 0 for _ in range(2, n): temp = a + b a = b b = temp if n == 1: print(1) else: print(b % 15746) # 두번째 풀이 n = int(input()) array = [0] * 1000001 array[1] = 1 array[2] = 2 for i in range(3, n+1): array[i] = (array[i-1] + array[i-2]) % 15746 print(array[n]) - 왜 배열을 쓸 떼 없이 많이 만든 게 시간 초과가 안 뜰까 .. 2020. 9. 29.