전체 글
-
BOJ15650: N과 M (2)BOJ 2024. 2. 1. 00:21
#include using namespace std; int n, m; vector a; int main(void) { ios::sync_with_stdio(0); cin.tie(0); cin >> n >> m; for (int i = 0; i < m; i++) a.push_back(0); for (int i = 0; i < n - m; i++) a.push_back(1); do { for (int i = 0; i < n; i++) { if (a[i] == 0) cout
-
재귀Algorithm 2024. 1. 30. 23:53
재귀 조건 1) 특정 입력에 대해 자기 자신을 호출하지 않고 종료되어야 함(base condition) 2) 모든 입력은 base condition으로 수렴해야 함 재귀에 대한 정보 1) 함수의 인자로 어떤 것을 받고 어디까지 계산한 후 넘겨줄지 정확히 알아야 함 2) 모든 재귀 함수는 반복문만으로 동일한 동작의 함수 구현 가능 3) 재귀는 반복문으로 구현했을 때에 비해 코드가 간결하지만 시간/메모리에서 손해 자기 자신을 여러 번 호출하면 비효율적일 수 있음 절차지향적 사고를 버려라! 1) 1에서 잘 동작함 2) k에서 잘 동작함 3) k+1에서 잘 동작함 -> (k+1, k, k-1, k-2...)에서도 잘 동작함 필요한 것: 함수의 정의 / Base condition / 재귀식 BOJ11729 하노이..
-
BFS(너비우선탐색), DFS(깊이우선탐색)Algorithm 2024. 1. 30. 21:36
# BaaarkingDog 님의 강의를 참고했습니다 BFS 다차원 배열에서 각 칸을 방문할 때, 너비를 우선으로 방문하는 알고리즘 STL container의 pair 기능을 사용해 좌표 입력 pair t2 = { 4,6 }; // C++ 11 #include using namespace std; #define X first #define Y second // pair에서 first, second를 줄여서 쓰기 위해서 사용 // t.first, t.second 대신 t.X, t.Y로 사용 가능 int board[502][502] = { {1,1,1,0,1,0,0,0,0,0}, {1,0,0,0,1,0,0,0,0,0}, {1,1,1,0,1,0,0,0,0,0}, {1,1,0,0,1,0,0,0,0,0}, {0,1..