일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 재귀
- 다익스트라
- DFS
- VR
- 유니티
- 유니온 파인드
- 정렬
- 수학
- c++
- 투 포인터
- 트리
- 다이나믹 프로그래밍
- 시뮬레이션
- 그래프
- BFS
- XR Interaction Toolkit
- Team Fortress 2
- 누적 합
- 백준
- Unreal Engine 5
- 브루트포스
- 그리디 알고리즘
- 문자열
- 자료구조
- 구현
- 알고리즘
- ue5
- 우선순위 큐
- 스택
- 백트래킹
- Today
- Total
목록백준 (475)
1일1알

주어진 입력의 가장자리에는 치즈가 없기 때문에 (0, 0)에는 치즈가 절대 없을 것이다. 치즈가 전부 녹을 때까지 (0, 0)에서 bfs를 시작하여 치즈를 녹이는 것을 반복하였다. bfs 도중에 치즈를 만나면 continue를 해서 바깥에 있는 치즈만 녹도록 하였다. #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; int r, c; int cheese_size = 0; int last_size = 0; int cnt = 0; int dRow[4] = { -1,0,1,0 ..

각 모양마다 모양의 맨 밑이 바닥과 얼마나 떨어져있는지를 모양의 정보로 저장해서 맵의 높이 - 모양의 맨 밑 값을 뺀 값이 모두 같으면 그 자리에 놓을 수 있다고 생각하는 식으로 문제를 해결하였다. #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; int c, p; vector shapes(8, vector()); vector ans(8, 0); void Init() { shapes[1].push_back("0"); shapes[1].push_back("0000"); sh..

1. 문자열들을 입력받아서 길이가 긴 게 앞에 오도록 정렬한다. 2. 맨 앞에 있는 2개의 문자열의 길이가 제일 길다. 하나를 a, 다른 하나를 b라고 한다. 3. a가 접두사라고 가정했을 때는 a 에 b의 마지막 문자를 붙여 완전한 문자열을 만든다. (b가 접두사라고 가정했을 때는 반대로) 4. 3에서 구한 완전한 문자열 두가지 경우에 대해서 나머지 문자열들도 검사를 해서 맞는 경우가 정답이다. (둘 다 맞으면 아무거나) #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll;..

먼저 2중 for문으로 한 도시에서 다른 모든 도시까지 가는 거리들을 텔레포트도 고려하여서 구하고, 플로이드-와샬 알고리즘으로 최소 거리를 구했다. #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; struct city { city() {}; city(int s, int x, int y) :s(s), x(x), y(y) {}; int s; int x; int y; }; int n, t, m; vector v(1001); vector dists(1001, vector(100..

데이터의 크기가 크지 않기 때문에 백트래킹을 이용하여 모든 경우를 조사해서 매직 스퀘어가 되는 몇 가지 경우를 추출할 수 있다. 처음 입력받은 데이터와 추출한 매직 스퀘어들을 비교해서 바꾸는데 가장 적은 값이 필요한 경우를 찾았다. 그리고 3*3배열이라서 1차원 배열로 관리하는게 더 편할 것 같아서 1차원 배열로 바꿔서 문제를 해결하였다. #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; vector origin(10); vector visited(10, false); v..

a에 있는 숫자들을 백트래킹을 이용하여 새로운 숫자를 만들고, b보다 작은 값들 중 가장 큰 값을 구했다. 처음 시작이 0인 숫자는 제외하였다. #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; string a; int b; int ans = -1; vector nums; vector visited(11, false); void BT(int len, int num) { if (len >= nums.size()) { if (num < b) { ans = max(ans, nu..