GearWheel
문제 복기
회전 순서, 알고리(재귀함수 이용)
왼쪽/오른쪽 톱니바퀴 먼저 회전
idx번째 톱니바퀴 회전
틀린 이유
시계방향으로 회전할 때(5시간의 교훈) i번째 값은 i-1값에서 온다. 그런데 반복문을 i가 증가하는 반복문으로 해버리면 새로 갱신된 i번째값이 i+1번째 값으로 들어가게 된다. 그렇기 때문에 감소하는 반복문을 사용하여 뒤에서부터 값을 갱신시켜준다!
2. idx-1,idx+1번째 톱니바퀴가 회전하는 부분 한번만 구현했다. =>0번째 톱니바퀴를 회전한다고 하자. 그러면 1번째,2번째,3번째 톱니바퀴 모두 비교해봐야한다! 그렇기 때문에 1회성으로 1번 구현하는 게 아니라 idx를 기준으로 왼쪽 오른쪽, idx-1기준으로 왼쪽, idx+1기준으로 오른쪽을 확인해봐야한다!!!!! =>재귀함수로 구현할 수 있다! 매개변수로는 (톱니바퀴인덱스, 방향, 왼쪽(1) or 오른쪽(2))를 넘겨준다. idx기준 왼쪽 톱니바퀴 : go(idx-1,-dir,1) : 왼쪽 톱니바퀴니까 왼쪽 톱니바퀴에 대해 회전 여부 확인,회전시켜준다. idx기준 오른쪽 톱니바퀴 : go(idx+1,-dir,2) : 오른쪽 톱니바퀴니까 오른쪽 톱니바퀴에 대해 회전 여부 확인,회전시켜준다.
배운 점
구현 문제는 복잡한 구현들을 해야하는 경우가 많으니까 동작 별로 함수를 구현하는 것도 좋고, 하나의 함수로 구현한다면 최대한 명확하게 구현하도록 하자. 깔끔한 클린 코드들을 보고 배우자.
Last updated