[C++] 백준 21610


[C++] 백준 21610

문제 디버깅 노트 빡구현으로 풀면 되는 문제라고 생각했지만, 자꾸 예상하지 못하는 이상한 값이 나왔다. 내가 구현하면서 뭔가를 놓친거라고 생각했지만, 디버깅 결과 원형 배열을 구현하는 과정에서 잘못된 로직을 사용하였다는 것을 알게 되었다. 잘못된 배열 처리 for(int i=0;i<s;i++) { y += dy[d-1]; x += dx[d-1]; if(y >= N) y=0; else if(y < 0) y=N-1; else if(x >= N) x=0; else if(x < 0) x=N-1; } 올바른 배열 처리(원형 배열) for(int i=0;i<s;i++) { y += dy[d-1]; x += dx[d-1]; y = (y + N)%N; x = (x + N)%N; } 어차피 로직은 똑같다고 생각했기 때문에, 굳이 모듈로 연산을 사용하지 않고 첫번째 소스코드처럼 구현했다. 내 실수였다. 전부 if 처리를 했어야 했는데, if-else if를 사용해 x와 y가 독립적으로 처리되지 못하게...



원문링크 : [C++] 백준 21610