코딩테스트/백준

    [실1] 11286 - 절대값 힙

    #include #include #include #include using namespace std; #define y first #define x second int main() { using pq_type = pair; cin.sync_with_stdio(0); cin.tie(0); priority_queue q; int n; cin >> n; for (int i = 0; i > val; if (val != 0) q.push({ abs(val), val }); else { if (q.empty()) cout

    [실1] 1991 - 트리 순회

    #include using namespace std; int n; struct node { char left; char right; }; struct node tree[100]; void preOrder(char root) { if (root == '.') return; else { cout t1 >> t2 >> t3; tree[t1].left = t2; tree[t1].right = t3; } preOrder('A'); cout left); cout data; In_order(_node->right); } // (왼쪽, 오른쪽, 루트) void Post_order(s_node* _node) { if (!_node) return; Post_order(_node->left); Post_order(_node..

    [실1] 2667 - 단지 번호 붙이기

    #include #include #include #include #include #include using namespace std; #define TOTAL_SIZE 5000 #define y first #define x second pair dir[] { { 1, 0 }, // 상 {-1, 0 }, // 하 { 0,-1 }, // 좌 { 0, 1} // 우 }; vector res(TOTAL_SIZE); int map[TOTAL_SIZE][TOTAL_SIZE]{ 0 }; bool visited[TOTAL_SIZE][TOTAL_SIZE]; int b_size = 0; int idx = 0; void BFS(int _y, int _x) { // 탐색 시작 queue q; q.push({ _y, _x })..

    [실2] 1406 - 에디터

    #include #include #include #include #include #include #include using namespace std; list my_list; auto iter = my_list.end(); int count = 0; void Move_left() { if (iter != my_list.begin()) iter--; } void Move_right() { if (iter != my_list.end()) iter++; } void Delete() { if (iter == my_list.begin()) return; iter = my_list.erase(--iter); } void Add(char _letter) { my_list.insert(iter, _letter); } ..

    [실1] 1926 - 그림

    #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define MAX_SIZE 502 int board[MAX_SIZE][MAX_SIZE]; bool visited[MAX_SIZE][MAX_SIZE]; int n = 0, m = 0; int dx[4]{ 1, 0, -1, 0 }; int dy[4]{ 0, 1, 0, -1 }; int main() { cin >> n >> m; for (int i = 0; i > board[i][j]; } int mx = 0; //..

    [실1] 2178 - 미로탐색

    특이사항) 좌표 (1,1)부터 (y,x)까지 이동하라는데 (1,1)부터 시작 시 로직이 복잡해지므로 (0,0)부터 시작 #include #include #include #include using namespace std;#define FAST_IO() ios::sync_with_stdio(0); cin.tie(0);#define y first#define x secondusing IntPair = pair;IntPair dir[]{ {1, 0}, // 상 {-1, 0}, // 하 {0, -1}, // 좌 { 0, 1 }, // 우};vector> map, dist;queue q;int y, x, cnt;void Bfs(){ while (!q.empty()) { auto cur = q.front..

    [실2] 11724 - 연결 요소의 개수

    Dfs로 주변 정점이 있는지 파악하고 있을 시 방문 여부 표시 없을 시 새로운 그래프로 간주 후 1개 증가 #include #include #include #include using namespace std;#define FAST_IO() ios::sync_with_stdio(0); cin.tie(0);#define y first#define x secondusing IntPair = pair;IntPair dir[]{ {1, 0}, // 상 {-1, 0}, // 하 {0, -1}, // 좌 { 0, 1 }, // 우};vector> graph;vector vis;int n, m;void Dfs(int idx){ vis[idx] = true; for (int i = 0; i > n >> m; ..

    [실2] 1012 - 유기농 배추

    x y로 푸는 사람들한텐 안맞을듯 #include #include #include using namespace std;#define FAST_IO() ios::sync_with_stdio(0); cin.tie(0);pair dir[]{ {1, 0}, // 상 {-1, 0}, // 하 {0, -1}, // 좌 { 0, 1 }, // 우};vector> map;int t, h, w, k;void Dfs(int y, int x){ for (int i = 0; i = h || ny = w || nx > t; while (t--) { int cnt = 0; cin >> h >> w >> k; map = vector>(h, vector(w)); while (k--) { int a, b;..

    [실2] 4963 - 섬의 개수

    #include #include using namespace std;#define FAST_IO() ios::sync_with_stdio(0); cin.tie(0);pair dir[]{ {1, 0}, // 상 {-1, 0}, // 하 {0, -1}, // 좌 { 0, 1 }, // 우 // 대각선 {1, 1}, {-1, -1}, {1, -1}, {-1, 1},};vector> map;int h, w;void Dfs(int y, int x){ for (int i = 0; i = h || ny = w || nx > w >> h; if (!w && !h) break; //map.resize(h, vector(w)); map = vector>(h, vector(w)); for (i..