목록전체 글 (129)
컴퓨터공학 💻 도서관📚

queue.append((x,y)) : 2차원 튜플을 큐에 추가return graph[n-1][m-1] : print(bfs(0,0)) (0,0) 을 대입했기 때문에 graph 배열 인덱스도 [n-1][m-1] 처럼 - 1 해줘야 한다 실제로는 bfs 함수가 main 함수 위에 있어야 한다

(파이썬에서는 함수에 사용된 변수or 배열이 함수보다 아래에 있는데 정상적으로 되더라) ( ex. graph[][] ) (C언어에서는 함수 안에 있는 변수들은 전역변수로 따로 선언하지 않은 이상 다 지역변수여서 다 각각 선언을 해줘야 한다)(C언어에서는 함수에서 main함수에 있는 변수, 배열을 사용하고 싶으면 포인터를 이용해서 매개변수로 받아야 된다) dfs(x-1, y) 포함 4개 방향 코드 --> 코드 수행하고 혼자 반환하고 끝 --> [ 이 반환은 dfs(i, j)의 반환이 아니기에if dfs(i,j) == True: 이 코드에 영향을 주지 않는다 ] 대신 인접 노드의 값이 0이면 1로 바꾸는 효과가 있음 --> 그래서 그래프 형태에서 0이 인접한 덩어리를 1번만 셀 수 있다(와...

BFS 유형은 최단 거리 유형의 문제에 활용되기도 한다 모든 작업이 끝나면 큐 안은 비워져 있다. BFS 코드 예제 : DFS 와 마찬가지로 BFS 도 0번 인덱스를 비워두고, visited 배열의 요소를 9개로 선언한다 파이썬 예제queue = deque([start]) # 시작 노드를 큐에 넣어준다 파이썬 deque 를 출력해보면 deque([1,2]) 이런 형태로 출력이 된다. (큐의 요소 하나가 리스트 하나인 느낌) while queue # 큐가 참일 때 --> 큐가 0이 아닐 때 --> 큐가 비어있지 않을 때 (popleft 함수는 반환까지 하는 함수인듯) c++ 예제c++ 에서 인접리스트 방식으로 그래프를 구현하고자 하면 vector를 이용해서 특정..
if not 뒤에 나오는 조건을 만족하지 못하면 아래 코드를 수행함 if not number > 100: print("Nooooo") # number가 100을 넘지 않으면 Nooooo를 출력한다

DFS 동작 예시: 스택 자료구조인 경우방문 기준: 번호가 낮은 인접 노드부터 DFS 코드 자바 예제 : 스택 자료구조를 사용한 경우 강의 영상 예시처럼 1 2 7 이렇게 스택에 쌓이는 코드import java.util.*;public class DFSVisitAllPeek { public static void main(String[] args) { int n = 8; // 그래프 초기화 List> graph = new ArrayList(); for (int i = 0; i ()); } // 간선 연결 graph.get(1).addAll(Arrays.asList(2, 3, 8)); graph...
파이썬에서 end는 print 문의 옵션 중 하나이다 end옵션을 사용하면 그 뒤의 출력값과 이어서 출력한다. (즉, 줄바꿈을 하지 않게 된다.) print("I like", end=" ")print("romance")# 출력 결과 : I like romance 참고)https://infinitt.tistory.com/11 파이썬(Python) 기초 print ( )문의 옵션 (sep , end , format , Escape )파이썬에서 출력문에 사용되는 함수 print()에는 다양한 옵션들을 사용할 수 있다. 1. sep(separation) 영단어 그대로, 분리하여 출력한다. 다만 분리할 (갈라놓을 문자를 지정할 수 있다.) 이것을 구분infinitt.tistory.com

재귀함수 : 자기 자신을 호출(반환)하는 함수 재귀함수는 종료 조건을 꼭 명시해야 한다 재귀함수 예제 : 팩토리얼, 최대공약수 계산 def factorial(n): # 팩토리얼 계산 if n == 1: # 종료조건 : if로 명시 return 1 return n * factorial(n-1) # 재귀 : else + return과 함께 자기자신을 호출 (여기선 점화식)N = int(input())print(factorial(N)) 모든 재귀함수는 반복문을 이용하여 동일한 기능을 구현할 수 있다 재귀 함수가 반복문보다 유리한 경우도 있고 불리한 경우도 있다 컴퓨터가 함수를 연속적으로 호출하면 컴퓨터 메모리 내부의 스택 프레임에 쌓입니다..

큐 : 터널, 주유소 큐는 먼저 들어온 데이터가 먼저 나간다 파이썬 큐 : 리스트도 기능적으로는 구현할 수 있지만 시간복잡도가 더 높아서 비효율적임, 덱 / deque 라이브러리 쓰셈 리스트로 큐를 구현할 시pop함수를 사용하면 원소를 꺼낸 뒤 원소의 위치를 조정하는 과정이 필요해서원소를 꺼내는 연산 자체가 O(K)만큼의 시간복잡도가 요구된다. 그래서 비효울적이다. append, popleft 함수 여기서 append 함수는 파이썬 내장함수 append함수와 똑같이 구동하기 때문에 요소를 오른쪽 끝에 추가한다. 그렇기 때문에 삭제하는 함수가 왼쪽부터 삭제하는 popleft 이다. 그래서 우리가 익숙한 순서로 출력하려면 역순으로 바꾸고 출력한다 C++ 큐 : push, pop, ..