[코테 유형별로 씹어먹기] BFS 어떤 문제에 사용될까?
개념 트리나 그래프, 혹은 다른 것들에 대해 탐색을 진행할때 사용하는 방법들이 BFS와 DFS이다. BFS는 한칸씩 이동, DFS는 한쪽으로 이동 대략적으로 이렇게 이해하고 가면 된다. 코테나 대회에서 그래프/트리 문제나 BFS DFS를 응용한 문제들은 꼭 하나씩은 봤던 것 같다. 구현# 크기가 N*M인 2차원 행렬 탐색 (가로 M, 세로 N)from collections import dequedx=[1,-1,0,0]dy=[0,0,-1,1]def bfs(X,Y): vi=[[0]*M for i in range(N)] queue=deque([(X,Y)]) vi[Y][X]=1 while queue: x,y=queue.popleft() for i in range(n): ..
지금까지 써본 언어 중 가장 어지러운 언어 [Arm Assembly]
간단?한 hello world 출력 예제인데.. hello world 출력하는 코드가 아래랑 같다..text_start: .global _start @ sys_write ( fd, pstr, len ) @ r7=4 r0 r1 r2 mov r0, #1 @fd 천천히 코드를 하나하나 뜯어보자, 일단 큼지막하게 .text, _start, .global, msg:, .end로 나눠보자. 섹션크게 데이터 섹션과 코드 섹션으로 나눌 수 있고, 각각 .data, .text로 나뉜다.데이터 섹션에는 프로그램에서 사용하는 데이터 (변수, 상수, 배열, 문자열 등)이 포함되고, .data 혹은 .section .data와 같은 지시문으로 정의된다. 이 섹션에 선언..