문제 코드 from collections import deque import sys input = sys.stdin.readline n, m, r = map(int, input().split()) # n : 정점 m : 간선의 수 r :시작 정점 graph = [[] for _ in range(n+1)] # 빈 그래프 2차원 배열 생성 for i in range(m): a, b = map(int, input().split()) graph[a].append(b)# 연결된 정점들 입력하기 graph[b].append(a) visited = [0] * (n+1)# 정점 n이 몇 번째에 방문하는지 count = 1# 방문하는 차례 visited[r] = 1# 시작 정점 r이 첫 번째 순서 queue = dequ..
문제 설명 코드 # DFS 함수 정의 def dfs(x, y): # 바닥 장식이 '-' 일 때 if graph[x][y] == '-': graph[x][y] = 1 # 해당 노드 방문처리 for _y in [1, -1]: # 좌우 노드가 '-' 모양인지 확인 Y = y + _y # 좌우 노드가 주어진 범위를 벗어나지 않고 '-' 모양이라면 재귀함수 호출 if (Y > 0 and Y < m) and graph[x][Y] == '-': dfs(x, Y) # 바닥 장식이 '|'일 때 if graph[x][y] == '|': graph[x][y] = 1 # 해당 노드 방문처리 for _x in [1, -1]: # 상하 노드가 '|' 모양인지 확인 X = x + _x # 상하 노드가 주어진 범위를 벗어나지 않고 ..
[1] 문제 [2] 코드 N, M = map(int, input().split()) num_list = list(map(int, input().split())) num_list.sort(reverse=True) prev_sum = num_list[0] + num_list[1] + num_list[2] sum = 0 flag = False if prev_sum == M : print(prev_sum) else : for i in range(N): for j in range(i+1, N): for k in range(j+1, N): sum = num_list[i] + num_list[j] + num_list[k] if (M - sum) < 0: continue if (M - prev_sum) < 0: if ..
( 도움을 받은 블로그 = https://study-all-night.tistory.com/5 :) [1] 문제[2] 결과[3] 코드# 재귀함수def draw_star(n): global Map if n == 3 : Map[0][:] = Map[2][:] = [1] * 3 Map[1][:] = [1, 0, 1] return a = n//3 draw_star(n//3) for i in range(3): for j in range(3): if i == 1 and j == 1 : continue for k in range(a): Map[a*i+k][a*j:a*(j+1)] = Map[k][:a] # 3의 거듭제곱수 입력N = ..