본문 바로가기

deque3

[Python] 20055. 컨베이어 벨트 위의 로봇 www.acmicpc.net/problem/20055 20055번: 컨베이어 벨트 위의 로봇 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부 www.acmicpc.net Point 내구도 0칸에는 로봇이 올라가지 못하며, 내려가기만 가능 벨트 회전 시 로봇 좌표 변경 이동하려는 칸에 로봇이 없어야하며 내구도 1이상 올라가는 위치에서 로봇이 없어야만 올림 Tip deque를 사용해 구현하면 코드가 간결해짐 로봇 좌표를 체크할 check 배열을 생성해서 계속 업데이트 해줌 메모리 (제한: MB) 129232 KB 시간 (제한: 초) 688 ms 결과 100% .. 2021. 4. 24.
[Python]1261. 알고스팟 https://www.acmicpc.net/problem/1261 1261번: 알고스팟 첫째 줄에 미로의 크기를 나타내는 가로 크기 M, 세로 크기 N (1 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 미로의 상태를 나타내는 숫자 0과 1이 주어진다. 0은 빈 방을 의미하고, 1은 벽을 의미한다. (1, 1)과 (N, M)은 항상 뚫려있다. www.acmicpc.net 이 문제의 경우 주변이 '0' 이면 가중치가 0, 주변이 '1' 이면 가중치가 1이다. 따라서 일반적인 Queue를 사용한 BFS는 절대 풀 수 없고 Deque을 이용해서 가중치가 0 일땐 앞에다 추가하고 가중치가 1일땐 뒤에다가 추가해줘야 한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18.. 2019. 4. 2.
[Python]13549. 숨바꼭질 3 https://www.acmicpc.net/problem/13549 13549번: 숨바꼭질 3 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 0초 후에 2*X의 위치로 이동하게 된다. 수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 구하는 www.acmicpc.net 이 문제의 경우 가중치가 적용된 BFS 문제로 Deque을 사용해서 해결할 수 있다. 0초로 움직이는 것은 가중치가 0 1초로 움.. 2019. 4. 1.
728x90
반응형