톱니바퀴

https://www.acmicpc.net/problem/14891

삼성 코딩 테스트 기출 문제이다.

시뮬레이션 문제이다.

시간이 많이 걸렸지만, 쉬운문제였다.

풀이

다음 톱니바퀴 상태를 예로 들자.

이를 테이블로 나타내면 다음과 같다.

위의 테이블에서 같읕 색깔의 네모로 체크 된 것이 맞닿는 부분이다.

3번 톱니바퀴를 돌린다고 하면,

  • 3번 톱니바퀴 기준, 왼쪽 톱니바퀴들을 모두 확인한다.

    • 2번 톱니바퀴와 닿는 부분이 같은 극이기 때문에 회전하지 못한다. 더 이상 왼쪽 톱니바퀴들을 확인하지 않는다.
  • 3번 톱니바퀴 기준, 오른쪽 톱니바퀴들을 모두 확인한다.

    • 4번 톱니바퀴와 닿는 부분이 다른 극이기 때문에 회전할 수 있다.
  • 각 톱니바퀴들을 모두 회전시킨다.(shift)

Comments