일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 그리디
- CVE
- Reversing
- 재귀
- 위상 정렬
- dfs
- BFS
- 백트래킹
- DP
- 구현
- 이분 탐색
- Spring
- c++
- error
- 문자열
- 분할 정복
- 우선순위 큐
- dynamic debugging
- web
- OS
- java
- 누적 합
- 맵
- GCP
- JPA
- 스택
- 데이크스트라
- 시뮬레이션
- thymeleaf
- 최단 경로
- Today
- Total
목록구현 (3)
hades
🥅 문제https://www.acmicpc.net/problem/16236 🔍 설계초기 설계에서는 초를 늘리면서, 거리가 동일할 때는 위, 왼쪽, 오른쪽, 아래 순으로 우선순위가 높으므로, 탐색 순서도 위, 왼쪽, 오른쪽, 아래 순으로 탐색한다. 먹을 수 있는 것이 있으면, 바로 먹고, 거리를 반환한다. 먹을 수 없으면, 거리를 갱신하고, 큐에 담는다. 반환된 거리가 0이 아니면, 먹을 수 있는 것이 있다는 의미이므로, 최종 결과에 더한다.반환된 거리가 0이면 먹을 수 있는 것이 더 이상 없다는 의미이므로 반복문을 종료한다.#include #include #include #include using namespace std;int n, baby_shark_size = 2, eat_count = 0, ..
🥅 문제https://www.acmicpc.net/problem/17144 🔍 설계확산, 반시계 순환, 시계 순환을 각각 구현하면 된다. 먼저, 확산을 설계해보았다. 확산은 동시에 일어나기 때문에, 기존 벡터에서 진행하면 안된다. 예를 들어, 0행 0열에서 확산이 일어났고, 확산된 양을 0행 1열에 추가하면, 0행 1열에서 확산이 일어날 때, 더해진 양을 고려한 미세먼지의 양으로 확산이 일어난다. 따라서, 확산과 관련된 연산은 before_spread에서 하고, 확산되는 양과 남은 양을 저장하기 위해 after_spread를 만들었다. 확산되는 양의 총합을 구하기 위해 확산되는 위치에서 더하는 것은 잘했으나, 남은 양을 저장하는 데 있어서 =으로 처리해서 문제가 있었다. =으로 처리할 경우, 확산되..
🥅 문제https://www.acmicpc.net/problem/14500 🔍 설계처음에는 시작 좌표를 잡고, 그 좌표에서 시작하는 테트로미노 케이스를 모두 만들어서 값을 도출하려 했으나, 대칭과 회전까지 고려했을 때, 케이스가 너무 많아진다. 테트로미노의 특징은 인접한 칸으로 이루어져 있다는 것이다. 따라서, DFS를 이용하여 4개의 칸으로 이루어진 테트로미노를 만들 수 있다. (poli) 하지만, ㅗ 모양의 테트로미노는 인접한 칸으로 확장해나가는 DFS로 구할 수 없으므로, 따로 만들어야 한다. ㅗ 모양을 만드는 가장 쉬운 방법은 十 모양의 테트로미노를 만들고, 상하좌우에서 하나씩 빼면 된다. 十 모양을 구성하는데, 칸이 존재할 수 있는 범위를 벗어나는 경우에는 제외되었다고 생각하면 되고, 제외된..