티스토리 뷰
https://www.acmicpc.net/problem/8972
8972번: 미친 아두이노
요즘 종수는 아두이노를 이용해 "Robots"이라는 게임을 만들었다. 종수는 아두이노 한대를 조정하며, 미친 아두이노를 피해다녀야 한다. 미친 아두이노는 종수의 아두이노를 향해 점점 다가온다.
www.acmicpc.net
딱히 함정이 없는 전형적인 보드판에서 물체들이 이동하는 구현 문제였다.
2차원 char형 vector를 보드판으로 만들어 문제를 해결했다.
문제에서 주어지는 과정으로 나눠서 분석해보면
1,2. 종수의 아두이노 'I'가 이동하거나 가만히 있는다.
그냥 주어지는 이동 방향대로 이동시키면 된다.
이동 했을때 해당 칸 vector의 front에 미친 아두이노 'R'이 있으면 종료한다.
3. 미친 아두이노가 이동한다.
미친 아두이노의 모든 방향마다 종수와의 거리를 계산해본다.
그 중 가장 거리가 가까운 방향으로 이동하면 된다.
이때 바로 보드에 반영하면 안되고 다른 벡터에 미친 아두이노의 다음 좌표들을 저장해줬다.
4, 5.
모든 미친 아두이노의 다음 좌표가 확정되면 일괄적으로 이동 하는 칸에 'R' 를 푸쉬해준다.
이렇게 푸쉬해서 한 칸에 여러개의 아두이노가 존재할수 있도록 보드판을 2차원 char형 vector로 만든 것.
이제 vector의 크기가 2 이상인 칸은 clear해서 미친 아두이노를 없애버리면 된다.
또 이동하는 좌표가 종수의 아두이노가 있는 좌표라면 게임 종료해준다.
특별히 함정은 없는 문제였지만, 이런 류 문제들이 항상 그렇듯 이동은 일괄적으로 해줘야 한다.
'PS' 카테고리의 다른 글
백준 2140. 지뢰찾기 (0) | 2022.07.01 |
---|---|
백준 1091. 카드 섞기 (0) | 2022.07.01 |
백준 16719. ZOAC (0) | 2022.06.30 |
백준 20164. 홀수 홀릭 호석 (0) | 2022.06.30 |
백준 10164. 격자상의 경로 (0) | 2022.06.28 |
- Total
- Today
- Yesterday
- two pointer
- Stack
- Kruskal
- Dijkstra
- DP
- permutation
- Unity
- C
- graph
- back tracking
- Tree
- Brute Force
- 이분탐색
- 조합
- 자료구조
- db
- priority queue
- dfs
- floyd warshall
- C++
- Implementation
- BFS
- binary search
- recursion
- Python
- MVC
- CSS
- greedy
- 재귀
- Spring
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |