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

map 자료구조를 이용해 문제를 해결하였다. unordered_map을 사용하면 시간이 조금 단축된다. #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; for (int i = 0; i < n; i++) { int t; map mp; bool isBattle = true; ll ans = ..

2중 for문을 통해 세 구간으로 나눈 뒤 다 비교하면서 사전순으로 제일 앞서는 단어를 찾았다. #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); string str; cin >> str; string ans = "~"; for (int i = 0; i < str.length() - 2; i++) { for (int j..

입력받은 순서대로 시뮬레이션 해가면서 문제를 해결하였다. #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ll = long long; void ChangeSwitch(int gender, int num, vector& sw) { if (gender == 1) { int idx = num; while (idx < sw.size()) { sw[idx] = !sw[idx]; idx += num; } } else { sw[num] = !sw[num]; int left = num - 1; i..

뒤에서부터 substr를 이용해서 부분 문자열을 추출하면서 set에 넣어서 넣은 만큼 있으면 모두 다른 것이므로 그때가 서로 다른 최소의 길이이다. #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 v(n); for (int i = 0; i > v..

우선 홀수개인 알파벳의 개수가 2개 이상이면 팰린드롬을 만들 수 없기 때문에 이 경우에는 바로 "I'm Sorry Hansoo" 를 출력한다. 그리고 홀수개인 알파벳의 개수가 한개라면 이 경우에서는 알파벳이 n/2 , 1, n/2 로 나눠지고 나머지의 경우에는 알파벳이 n/2, n/2 로 나눠진다. 사전순서대로 저장해주는 map 를 이용해 알파벳들을 저장하고 순회하면서 n/2만큼을 출력할 문자열에 붙여주고 남은 n/2는 스택에 넣어둔다. 그리고 홀수개인 알파벳이 하나가 있다면 n/2, 1, n/2의 중간의 1개의 알파벳을 저장해둔다. 홀수개인 알파벳이 있었다면 저장해둔 1개의 알파벳을 붙여두고 스택에서 빼가면서 출력할 문자열에 붙여준다. ex) AABBCCCCC - A : 2개, B : 2개, C : 5..

bfs를 돌면서 물을 채울 수 있다면 일단 job 큐에 넣어두고 마지막까지 탐색을 마쳤을 때 물이 새는 곳이 없다면 그때 job큐를 돌면서 물을 채워주는 방식으로 문제를 해결하였다. #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ll = long long; int n, m; int dRow[4] = { -1,0,1,0 }; int dCol[4] = { 0,1,0,-1 }; vector board(50, vector(50)); vector found(50, vector(50, fal..