작성
·
176
0
http://boj.kr/511ca2fd92df4f8886ede64c256bd10e
안녕하세요 선생님!
재귀를 이용하여 양옆의 톱니들과 비교해 계속해서 갱신해 나가는 방법으로 로직을 구현하였습니다.
테스트 케이스로 테스트 중 일부는 맞고 일부는 틀리게 결과가 나옵니다.
디버깅도 해보았으나 적절한 문제점을 찾지 못하였습니다.
혹시 로직에서 틀린 부분이 있을까요?
제 눈이 더 이상 보이지 않아서 질문 드립니다ㅠㅠ
답변 1
0
안녕하세요 100억님 ㅎㅎ
이부분이 틀린 거 같습니다.
else if (dir == -1)
rotate(gs[idx].begin(), gs[idx].begin() + 1, gs[idx].end());
if (idx + 1 < t && gs[idx][r] != gs[idx + 1][l])
이 코드를 보시면 돌린 이후의 gs를 비교하는데요.
문제를 볼까요?
니바퀴 A를 회전할 때, 그 옆에 있는 톱니바퀴 B와 서로 맞닿은 톱니의 극이 다르다면, B는 A가 회전한 방향과 반대방향으로 회전하게 된다.
회전하기 전에 극이 다르고 같음을 확인해야 합니다.
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.
제가 문제 이해를 잘못하고 있었네요!! 감사합니다!