📖 question https://www.acmicpc.net/problem/9085 9085번: 더하기 입력의 첫 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 10)가 주어진다. 각 테스트 케이스는 첫 줄에 자연수의 개수 N(1 ≤ N ≤ 100)이 주어지고, 그 다음 줄에는 N개의 자연수가 주어진다. 각각의 자연 www.acmicpc.net ✍️ answer t = int(input()) for i in range(t): n = int(input()) a = map(int, input().split()) print(sum(a))
from collections import deque n, m = map(int, input().split()) maze = [] for i in range(n): maze.append(list(map(int, input()))) dx = [-1, 1, 0, 0] # 상하 dy = [0, 0, -1, 1] # 좌우 def bfs(x, y): # 넓이 우선 탐색 queue = deque() # 리스트 생성 queue.append((x, y)) while queue: x, y = queue.popleft() for i in range(4): nx = x+dx[i] ny = y+dy[i] if nx = n or ny >= m: continue if maze[nx][ny] ..
n, m = map(int, input().split()) iceBox = [] for i in range(n): iceBox.append(list(map(int, input()))) def dfs(x, y): # 깊이 우선 탐색 if x = n or y = m: return False if iceBox[x][y] == 0: iceBox[x][y] = 1 # 상하좌우 위치 재귀호출로 확인하기 dfs(x-1, y) dfs(x, y-1) dfs(x+1, y) dfs(x, y+1) return True return False result = 0 for i in range(n): # 행 for j in range(m): # 열 if dfs(i, j) == True: resul..
DFS (Depth-First Search) 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘 스택 자료구조 혹은 재귀 함수를 이용함 동작과정 1. 탐색 시작 노드를 스택에 삽입하고 방문 처리 함 2. 스택의 최상단 노드에 방문하지 않은 인접한 노드가 하나라도 있으면 그 노드를 스택에 넣고 방문 처리 방문하지 않은 인접 노드가 없으면 스택에서 최상단 노드를 꺼냄 3. 더 이상 2번의 과정을 수행할 수 없을 때까지 반복 def dfs(graph, v, visited): # 현재 노드 방문 처리 visited[v] = True print(v, end=' ') # 현재 노드와 연결된 다른 노드를 재귀적으로 방문 for i in graph[v]: if not visited[i]: dfs(graph, i ,vi..
탐색이란? 많은 데이터 중에서 원하는 데이터를 찾는 과정 대표적인 그래프 탐색 알고리즘으로 DFS, BFS가 있는데 코딩테스트에서 자주 등장하는 유형 자료구조 스택 자료구조 ( = 선입후출) stack = [] stack.append(5) stack.append(2) stack.append(3) stack.append(7) stack.pop() stack.append(1) stack.append(4) stack.pop() print(stack) # 5 2 3 1 큐 자료구조 ( = 선입선출) from collections import deque queue = deque() # 리스트말고 덱 라이브러리 생성하기 위해 queue.append(5) queue.append(2) queue.append(3) qu..
n, m = map(int, input().split()) visit = [[0] * m for _ in range(n)] # 방문 위치를 저장하기 위한 맵 x, y, d = map(int, input().split()) visit[x][y] = 1 gameMap = [] for i in range(n): gameMap.append(list(map(int, input().split()))) # 북 동 남 서 = 상 우 하 좌 dx = [0, 1, 0, -1] dy = [-1, 0, 1, 0] def turn_left(): global d d -= 1 if d == -1: d = 3 count = 1 # 현재 위치 포함 turn_time = 0 while True: turn_left() nx = x+dx[..