Go, Vantage point
가까운 곳을 걷지 않고 서는 먼 곳을 갈 수 없다.
Github | https://github.com/overnew/
Blog | https://everenew.tistory.com/
티스토리 뷰
반응형
문제
https://www.acmicpc.net/problem/3190
풀이
solved.ac 난이도: Gold 5
큐를 이용하면 더 쉽게 구현할 수 있는 문제.
큐에 머리가 이동한 위치를 저장하고, 만약 이동한 곳에 사과가 없다면 큐의 앞에서 pop해준다. (꼬리가 줄어듬)
단, 머리가 움직인 곳에 꼬리가 있더라도 결국 꼬리는 다음 칸으로 이동해야하므로 게임 오버가 아님을 주의하자.
뱀의 이동방향의 경우 아래와 같이 mod연산으로 구현하였다. (오른쪽(0) 부터 시계방향으로 1씩 증가, mod: 4 )
pair<int,char> turn의 first에는 방향 전환 시간, second에는 전환 방향을 저장함.
1
2
3
4
5
6
7
8
|
if(idx < turn_num && time == turn[idx].first){
if(turn[idx].second == 'L')
direction = (direction +mod -1) % mod;
else
direction = (direction +1) % mod;
++idx;
}
|
cs |
코드
반응형
'알고리즘 공부 > 백준' 카테고리의 다른 글
[백준] No.2263 - 트리의 순회 (C++, 트리) (0) | 2021.02.04 |
---|---|
[백준] No.3015 - 오아시스 재결합 (C++, 스택) (0) | 2021.02.01 |
[백준] No.17298 - 오큰수 (C++, 스택) (0) | 2021.01.31 |
[백준] No.2304 - 창고 다각형 (C++, 스택) (0) | 2021.01.30 |
[백준] No.10999 - 구간 합 구하기 2 (C++, 느리게 갱신된는 세그먼트 트리) (0) | 2021.01.27 |
댓글