본문 바로가기

Algorithm(CodeTree, Python)127

[코드트리] 가장 짧은 문자열 C++ #include #include using namespace std;int main() { string str1, str2, str3; cin >> str1 >> str2 >> str3; int str1_len = str1.length(), str2_len = str2.length(), str3_len = str3.length(); int len_list[3] = {str1_len, str2_len, str3_len}; int max_diff = 0; for (int i = 0; i max_diff) { max_diff = len_list[i] - len_list[j]; } } } cout   코.. 2024. 6. 3.
[코드트리] 계단 오르기 Python # dp 설계 dp = [ 0 for _ in range(10001) ] # dp 초기설정 dp[2] = 1 dp[3] = 1 # dp 채워넣기 for i in range(4, 1001): dp[i] = (dp[i-2] + dp[i-3]) % 10007 # n 입력 n = int(input()) # 출력 print(dp[n]) 2023. 3. 4.
[코드트리] 피보나치 수 Python # fib 설계 fib = [ 0 for _ in range(46) ] # 첫, 두번째 항 설정 fib[1] = 1 fib[2] = 1 # dp 채우기 for i in range(3, 46): fib[i] = fib[i-2] + fib[i-1] # n 입력 n = int(input()) print(fib[n]) 2023. 3. 4.
[코드트리] 상한 귤 Python # n, k 입력 n, k = map(int, input().split()) # box 입력 box = [ list(map(int, input().split())) for _ in range(n) ] # in_range def in_range(x, y): return 0 2023. 3. 2.
[코드트리] k개의 벽 없애기 Python from collections import deque import sys # n, k 입력 n, k = map(int, input().split()) # grid grid = [ list(map(int, input().split())) for _ in range(n) ] # 출발 점 입력 sx, sy = map(int, input().split()) sx -= 1 sy -= 1 # 도착 점 입력 ex, ey = map(int, input().split()) ex -= 1 ey -= 1 # visited visited = [ [0] * n for _ in range(n) ] # step step = [ [0] * n for _ in range(n) ] # Queue q = deque() # in_range.. 2023. 3. 2.
[코드트리] 나이트 Python # n 입력 n = int(input()) # sx, sy, ex, ey 입력 sx, sy, ex, ey = map(int, input().split()) sx, sy, ex, ey = sx - 1, sy - 1, ex - 1, ey - 1 # in_range def in_range(x, y): return 0 2023. 3. 1.
[코드트리] 최소 경로로 탈출 하기 Python # n, m 입력 n, m = map(int, input().split()) # maze 입력 maze = [ list(map(int, input().split())) for _ in range(n) ] # in_range(x, y) def in_range(x, y): return 0 2023. 3. 1.
[코드트리] 우리는 하나 Python # n, k, u, d 입력 n, k, u, d = map(int, input().split()) # maps maps = [ list(map(int, input().split())) for _ in range(n) ] # in_range def in_range(x, y): return 0 2023. 2. 28.
[코드트리] K번 최댓값으로 이동하기 Python # n, k 입력 n, k = map(int, input().split()) # grid 입력 grid = [ list(map(int, input().split())) for _ in range(n) ] # r, c 입력 r, c = map(int, input().split()) r -= 1 c -= 1 # in_range(x, y) def in_range(x, y): return 0 2023. 2. 28.
[코드트리] 돌 잘 치우기 Python # n, k, m 입력 n, k, m = map(int, input().split()) # grid 입력 grid = [ list(map(int, input().split())) for _ in range(n) ] # start_points start_points = [ tuple(map(int, input().split())) for _ in range(k) ] # in_range(x, y) def in_range(x, y): return 0 2023. 2. 28.
[코드트리] 갈 수 있는 곳들 Python # n, m 입력 n, m = map(int, input().split()) # grid 입력 grid = [ list(map(int, input().split())) for _ in range(n) ] # start_points start_points = [ tuple(map(int, input().split())) for _ in range(m) ] # in_range(x, y) def in_range(x, y): return 0 2023. 2. 28.
[코드트리] 네 방향 탈출 가능 여부 판별하기 Python # n, m 입력 n, m = map(int, input().split()) # maze 입력 maze = [ list(map(int, input().split())) for _ in range(n) ] # in_range(x, y) def in_range(x, y): return 0 2023. 2. 28.
[코드트리] 뿌요뿌요 Python # n 입력 n = int(input()) # grid grid = [ list(map(int, input().split())) for _ in range(n) ] # in_range(x, y) def in_range(x, y): return 0 = 4: # bomb_cnt 올려주고 bomb_cnt += 1 # max_block update max_block = max(max_block, curr_cnt) # 출력 print(bomb_cnt, max_block) 2023. 2. 27.
[코드트리] 안전 지대 Python # n, m 입력 n, m = map(int, input().split()) # towns towns = [ list(map(int, input().split())) for _ in range(n) ] # in_range(x, y) def in_range(x, y): return 0 h: # curr_safe_area 올려주고 curr_safe_area += 1 # 방문처리 후 visited[i][j] = True # dfs dfs(i, j) # curr_safe_area가 max_safe_area보다 크면 if curr_safe_area > max_safe_area: # k, max_safe_area k, max_safe_area = h, curr_safe_area try: print(k, max_sa.. 2023. 2. 27.
[코드트리] 마을 구분하기 Python # n 입력 n = int(input()) # towns 입력 towns = [ list(map(int, input().split())) for _ in range(n) ] # in_range(x, y) def in_range(x, y): return 0 2023. 2. 27.
[코드트리] 두 방향 탈출 가능 여부 판별하기 Python # n, m 입력 n, m = map(int, input().split()) # maze maze = [ list(map(int, input().split())) for _ in range(n) ] # in_range(x, y) def in_range(x, y): return 0 2023. 2. 27.
[코드트리] 그래프 탐색 Python # n, m 입력 n, m = map(int, input().split()) # graph graph = [ [0] * (n+1) for _ in range(n+1) ] # x, y 입력 for _ in range(m): x, y = map(int, input().split()) graph[x][y] = 1 graph[y][x] = 1 # dfs(vertex) def dfs(vertex): # 전역 변수 선언 global ans for curr_v in range(1, n+1): # 이어져 있고, 방문한 적 없으면 if graph[vertex][curr_v] and not visited[curr_v]: # 정답 올려주고 ans += 1 # 방문 처리후 visited[curr_v] = True # 재귀호출.. 2023. 2. 27.
[코드트리] 외판원 순회 Python # n 입력 n = int(input()) # costs costs = [ list(map(int, input().split())) for _ in range(n) ] # 함수들 # get_min_cost(curr_path) def get_min_cost(curr_path): # curr_loc, curr_cost curr_loc, curr_cost = 0, 0 for next_loc in curr_path: # 비용이 0인게 있으면 if not costs[curr_loc][next_loc]: # 최대비용 처리 return sys.maxsize # 비용을 내고 curr_cost += costs[curr_loc][next_loc] # 움직여주기 curr_loc = next_loc # 마지막 비용이 0이면 .. 2023. 2. 7.