본문 바로가기

분류 전체보기57

백준 9019 C++ bfs 9019번: DSLR 문제 코드만 궁굼하시면 아래로 스크롤 해주세요~!이 문제는 처음보는 문제 유형이였습니다.왜냐하면 대부분의 그래프 문제는 vertex, edge의 개수가 정확히 주어지는 문제였는데이번에는 implicit graph로 무한그래프? 끝을 알 수 없는 그래프 문제입니다. 저는 그래프 문제를 풀 때 기본적인 것으로 돌아가는게 중요하다 생각합니다.그러므로 bfs에 대한 기본적인 코드를 머리에 넣고 갑시다. 기본적으로 큐로 도착하고 가까운 노드를 먼저 탐색을 하니 아래와 같은 코드가 나옵니다....// 그래프를 인접 리스트로 표현vector> graph;vector visited;void bfs(int start) { queue q; // 탐색을 위한 큐 q.push(s.. 2024. 11. 11.
백준 1707 C++ dfs한 번 돌려서 색을 칠하고 그래프 돌면서 옆이랑 같은 색인지 확인하면 끝이다.#include #include using namespace std;int v, e;vector> Graph;vector isvisited;void input() { cin >> v >> e; Graph.assign(v + 1, vector(0, 0)); isvisited.assign(v + 1, 0); for (int i = 0; i > cv >> ce; Graph[cv].push_back(ce); Graph[ce].push_back(cv); } }void dfs(int cur) { if (!isvisited[cur]) isvisited[cur] = 1; for (int i = 0; i > k; for (int .. 2024. 11. 5.
1987 C++ 백준 그래프 문제 문제를 천천히 읽어보자....대충 보면 R x C grid가 있고 이미 방문한 알파벳은 방문이 불가능하다.최대로 멀리 갈 수 있는 경로를 찾아라? 이렇게 해석이 된다... 그렇다면 dfs를 도입해서 생각해보자. 일단 머리에 하나의 코드를 넣고, 나의 정답 코드와 비교를 해보자.void dfs(int x){ visited[x] = true; cout void solve(int x, int y, int m) { visited[arr[y][x] - 'A'] = 1; if (ans = 0 && cy >= 0 && cx 생긴거만 보면 거의 동일하며, 문제에 맞게 조금만 변형이 되어 있다. #include #include using namespace std;char arr[21][21];int visited[26].. 2024. 11. 4.
2630 백준 C++ https://www.acmicpc.net/problem/2630 위 문제를 풀었다. 분할 정복 문제는 가장 크게 3가지를 위주로 고민하면 된다. 1. 재귀를 언제까지 지속하는가?2. 어떻게 나눠야 할까?3. 어떻게 나눈 것을 합칠까? 이렇게 3가지를 고려하면 되는데 이걸 머리에 넣고 고민해보자....  문제를 대충 요약해서 보면..계속해서 n/2로 나눠지고.. 문제를 읽어보면 1x1 grid를 가지고 있으면 그냥 그 색으로 간다고 한다. 그렇다면 n이 1이면 분할을 멈춰야 할 것이고. n * n grid에 다른 색이 있다면 n/2로 나누어서 다시 호출해야 할 것이다. 그리고 총 4가지의 면으로 쪼개니까.아래처럼 시작 값에 n/2를 각각 맞게 더해주면 될 것이다. #include #include usin.. 2024. 10. 27.
도커란 무엇일까?- 도커 개념정리(Docker) 도커란?**도커(Docker)**는 애플리케이션을 컨테이너라는 가상 환경에 패키징하고 배포하는 기술입니다. 컨테이너는 애플리케이션이 실행되기 위해 필요한 모든 라이브러리, 종속성, 설정 등을 포함한 독립적인 실행 환경을 제공하는 오픈소스이다. 도커는 왜 생겨났을까? 과거의 배포 (Traditional Deployment)구성: 하드웨어 → 운영 체제(OS) → 애플리케이션  여러 어플리케이션이 하나의 운영 체제에서 실행이 되므로 서로 의존성과 충돌이 발생할 수 있으며, 시스템 자원의 사용이 제한적이였다. 예를들어 App1이 메모리 100을 먹고 있으면 App는 아무것도 못하지 않는가 가상화 배포 (Virtualized Deployment)\구성: 하드웨어 → 운영 체제(OS) → 하이퍼바이저(Hyperv.. 2024. 10. 23.
시간복잡도 g(n)은 f(n)의 상한이다. 2024. 10. 20.