전체 글(110)
-
[백준/C++]#1967 - 트리의 지름
풀이 #include #include #include #include using namespace std; struct Edge { int to; int cost; Edge(int to, int cost) : to(to), cost(cost) {} }; vector A[10001]; bool check[10001]; int dist[10001]; void bfs(int start) { memset(dist, 0, sizeof(dist)); memset(check, false, sizeof(check)); check[start] = true; queue q; q.push(start); while (!q.empty()) { int x = q.front(); q.pop(); for (int i=0; i> n;..
2021.02.19 -
[백준/C++]#1167 - 트리의 지름
풀이 #include #include #include #include using namespace std; struct Edge { int to; int cost; Edge(int to, int cost) : to(to), cost(cost) {} }; int n; vector A[100001]; bool check[100001]; int dist[100001]; void bfs(int start) { memset(dist, 0, sizeof(dist)); memset(check, false, sizeof(check)); queue q; check[start] = true; q.push(start); while (!q.empty()) { int x = q.front(); q.pop(); for (int ..
2021.02.18 -
[백준/C++]#11725 - 트리의 부모 찾기
풀이 #include #include #include using namespace std; vector a[100001]; bool check[100001]; int parent[100001]; int main() { int n; cin >> n; queue q; for (int i=0; i> u >> v; a[u].push_back(v); a[v].push_back(u); } check[1] = true; parent[1] = 0; q.push(1);// 루트인 1부터 dfs 시작 while (!q.empty()) { int x = q.front(); q.pop(); for (int y : a[x]) { if (check[y] == false) { check[y] = true; parent[y] = x..
2021.02.17 -
[백준/C++]#1991 - 트리 순회
풀이 #include using namespace std; int a[50][2]; void preorder (int N) { if (N == -1) return; cout x >> y >> z;// 알파벳 입력 x = x-'A';// 문자 -> 숫자 변환 if (y == '.') {// 입력이 .이면 그 자리에 -1 대입 a[x][0] = -1; } else { a[x][0] = y-'A'; } if(z == '.') { a[x][1] = -1; } else { a[x][1] = z-'A'; } } preorder(0); cout 오른쪽 중위 : 왼쪽->노드->오른쪽 후위 : 왼쪽->오른쪽->노드 덩어리처럼(서브트리) 생각해서 접근하면 순회 순서를 생각하기가 쉬워진다. 문자를 숫자로, 숫자를 문자로 바..
2021.02.16 -
[백준/C++]#2146 - 다리 만들기
풀이 #include #include using namespace std; int N; int a[101][101]; int g[101][101]; int d[101][101]; int dx[] = {1, 0, -1, 0}; int dy[] = {0, 1, 0, -1}; int main() { scanf("%d", &N); for (int i=0; i
2021.02.15 -
[백준/C++]#7576 - 토마토
풀이 #include #include using namespace std; int N, M; int a[1001][1001]; int ck[1001][1001]; int dx[] = {1, 0, -1, 0}; int dy[] = {0, 1, 0, -1}; int main() { queue q;// pair 받는 큐 선언 scanf("%d %d", &M, &N); for (int i=0; i
2021.02.13 -
[백준/C++]#2178 - 미로 탐색
풀이 #include #include using namespace std; int N, M; int a[101][101]; int ck[101][101]; int dx[] = {1, 0, -1, 0}; int dy[] = {0, 1, 0, -1}; int main() { scanf("%d %d", &N, &M); for (int i=0; i
2021.02.11 -
[백준/C++]#4963 - 섬의 개수
풀이 #include using namespace std; int a[51][51]; bool ck[51][51]; int dx[] = {-1, -1, -1, 0, 0, 1, 1, 1};//상하좌우 대각 int dy[] = {-1, 0, 1, -1, 1, -1, 0, 1}; int w,h; void dfs(int y, int x, int CNT) { ck[y][x] = true; for (int k=0; k> h && (w!=0 && h!=0)) {// w와 h가 모두 0이면 종료 for (int i=0; i a[i][j];// 입력 ck[i][j] = false;// ck 배열 초기화 } } int cnt=0; for (int i=0; i
2021.02.10 -
[전공필수] 신호 및 시스템 리뷰
신호 및 시스템 과목에서는 푸리에, 라플라스 변환의 활용적인 측면을 배운다. 이전에 배운 공업수학과 연계되며, 이는 통신관련 과목으로 이어진다. 특정 목적을 위해 신호를 시스템에 대입해 다른 신호로 변환한다. 그러한 과정을 알아보는 과목이다. 기본적으로 공업수학에서 배운 복소수가 아주 많이 사용된다. 일단 신호는 CT(continous-time)와 DT(discrete-time) 신호로 나뉜다. 전자는 현실에 존재하며, 시간에 따라 무한한 값이 존재하므로 컴퓨터가 사용할 수 없다. 후자는 현실에는 없지만, 주로 가공된 값으로 컴퓨터가 여러 계산을 위해 사용할 수 있다. 현실의 CT를 DT로 변환하고, DT를 통해 컴퓨터에서 정보를 사용한 뒤, 다시 DT를 CT로 변환해 유의미한 값을 제공한다. 또한 CT..
2021.02.09