일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 우선순위 큐
- DFS
- 그리디 알고리즘
- 투 포인터
- 구현
- 알고리즘
- 유니티
- BFS
- 그래프
- 백준
- c++
- 누적 합
- 재귀
- 브루트포스
- XR Interaction Toolkit
- Team Fortress 2
- 정렬
- 시뮬레이션
- 트리
- 수학
- 다이나믹 프로그래밍
- VR
- ue5
- 백트래킹
- 스택
- 다익스트라
- 유니온 파인드
- 자료구조
- Unreal Engine 5
- 문자열
- Today
- Total
목록덱 (3)
1일1알
https://www.acmicpc.net/problem/18115 18115번: 카드 놓기 수현이는 카드 기술을 연습하고 있다. 수현이의 손에 들린 카드를 하나씩 내려놓아 바닥에 쌓으려고 한다. 수현이가 쓸 수 있는 기술은 다음 3가지다. 제일 위의 카드 1장을 바닥에 내려놓는다. www.acmicpc.net 카드가 위에서부터 1~n의 순서로 놓여져 있기 때문에 기술을 쓴 정보들은 뒤에서부터 1~n의 숫자를 조작한 것이다. 이 정보를 이용하여 덱 자료구조를 사용해서 초기 카드의 상태를 구할 수 있다. 1인 경우는 push_front 2인 경우는 맨 앞의 수를 저장하고 pop_front 한 뒤 push_front, 저장한 정보를 push_front 3인 경우는 pop_front #include #incl..

2번 연산을 수행하던 3번 연산을 수행하던 수행하는 횟수만 다르고 결과는 같다. 둘중 아무거나로 연산한 뒤에 연산결과, 큐 용량 - 연산결과 중 작은 것을 고르면 된다. 그래서 굳이 덱으로 만들지 않고 큐로 2번 연산만 수행해서 풀었다. #include #include #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); ..

뱀이 이동할 때마다 위치를 큐에 넣고, 보드의 정보를 갱신해준다. 만약 이동한 위치에 사과가 없다면 몸의 크기는 그대로 유지해야 하기 때문에 pop을 해주고 pop한 위치를 아무것도 없는 칸으로 바꿔준다. 사과가 있다면 몸의 크기가 늘어나기 때문에 pop을 하지 않고 진행하면 된다. 그리고 회전 정보를 이용하여 뱀을 회전시키고, 다음 위치가 자신의 몸이거나 벽이면 반복문을 종료한다. #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; int n, k, l; vector bo..