일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 투 포인터
- 우선순위 큐
- 백트래킹
- 누적 합
- BFS
- Team Fortress 2
- Unreal Engine 5
- 그리디 알고리즘
- 그래프
- 다익스트라
- 유니온 파인드
- 유니티
- 백준
- 브루트포스
- 스택
- DFS
- 정렬
- c++
- 문자열
- 시뮬레이션
- XR Interaction Toolkit
- 다이나믹 프로그래밍
- 트리
- ue5
- VR
- 수학
- 자료구조
- 구현
- 알고리즘
- 재귀
- Today
- Total
목록c++ (497)
1일1알

N이 최대 10만이기 때문에 브루트포스로 풀면 10만x10만 = 100억이 나와서 시간초과가 날 것 같아서 투 포인터로 문제를 해결하였다. 제일 왼쪽과 제일 오른쪽에서 각각 시작하여 둘 중 작은 값을 움직이면서 최대값을 구했다. #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ll = long long; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n; cin >> n; vector..

가격을 기준으로 내림차순으로 정렬한 뒤 투 포인터를 이용해 가격의 차이가 D 이상이면 왼쪽 포인터를 늘리고 아니라면 오른쪽 포인터를 늘리는 방식으로 문제를 해결하였다. #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ll = long long; bool compare(const pair& lhs, const pair& rhs) { return lhs.first > rhs.first; } int main() { ios_base::sync_with_stdio(false); cin.tie..

비트마스킹을 활용해서 bfs로 탐색하면서 문제를 해결하였다. #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ll = long long; int dRow[5] = { 0,-1,0,1,0 }; int dCol[5] = { 0,0,1,0,-1 }; int visited[600] = { false }; int arr[3][3] = { {0,1,2},{3,4,5},{6,7,8} }; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL)..

간단한 그래프 탐색 문제이다. bfs를 이용해서 문제를 해결하였다. #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ll = long long; int dRow[4] = { -1,0,1,0 }; int dCol[4] = { 0,1,0,-1 }; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n, m; cin >> n >> m; pair start; vector board(n, vect..

1. 자신과 다른 모든 코드들을 비교하면서 해밍 거리가 1인 경우만 경로를 추가한다. 2. 입력받은 a에서 b까지 도달할 때까지 bfs탐색을 한다. 탐색 도중에 parent 배열을 이용해서 지나온 경로를 저장한다. 3. parent 배열을 역으로 추적해서 지나온 경로를 추출해서 출력한다. #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ll = long long; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout...

a에서 b로 옮기는 경우와 b에서 a로 옮기는 경우가 배치되는 순서만 다를 뿐, 결과는 같기 때문에 순서를 신경쓰지 않고 방문 표시를 하며 bfs 탐색으로 문제를 해결하였다. #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ll = long long; struct Stones { int a; int b; int c; }; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int a, b, c; ..