긴 문제 설명에 압도당하지 말고, 말 그대로 시뮬레이션을 해보는 것이다!
단, 문제를 정확하게 이해하고, 문제 조건을 정확하게 파악하고 구현하는 것이 중요하다!
2번째 틀린 이유 : Scanner랑 BufferedReader 섞어서 쓰지말자. IDE에서는 정상적으로 동작하지만, 코드를 채점 프로그램에 제출하면 정확한 원인은 모르겠으나 입력을 받는 과정에서 NoElment 에러발생.
틀린 이유
문제를 잘못이해함
로봇은 1번 칸에 올리고, N번 칸에서 내린다.
=>로봇의 회전, 이동 범위 : 0 ~ N-1⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐
문제 설명
벨트가 회전할 때 N=>N+1이 되고, 2N은 1이 된다고 했다. 벨트의 회전 범위는 배열 인덱스로 따지자면 0~(2N-1)이다.
로봇 옮기는 과정의 첫번째 회전 단계에서 벨트는 로봇과 함께 회전한다고 했다.
이는 함께 회전할 뿐이지, 로봇은 N-1 위치에서 내려줘야한다!⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️
로봇도 벨트와 함께 0 2N-1 범위로 회전하는 것이 아니다‼️‼️‼️‼️‼️‼️‼️‼️‼️‼️‼️
틀린 이유
회전
로봇 회전 : 로봇이 오른쪽으로 1칸 회전한 후 0번째는 로봇이 없는 걸로 처리해줘야한다!!!
로봇은 0~N-1 범위 내에서 회전하고, 회전단계에서는 회전만 한다!
로봇 회전 범위가 0~2N-1 로 생각하고, 0번ㄴ째 칸에 2N-1로봇이 이동하는 거라고 잘못 생각해서 틀렸다.
로봇 이동
- 로봇의 현재위치를 x라고 하면 robot[x+1] = 2; 로 처리하려고 생각했는데
현재 로봇이 어느 위치에 있는지 알 수 없어서 구현을 생각해내지 못했다.
=> for문 돌리면서 i번째 칸에 로봇이 있다면 +1번째 칸으로 이동처리해주면 된다.
- 현재위치 => 다음위치 이동할 때 현재위치 로봇은 '0'으로 없는 것으로 처리해줘야한다!