-
Notifications
You must be signed in to change notification settings - Fork 0
CLOCKSYNC
zaeval edited this page Dec 29, 2019
·
3 revisions
- 4번누르면 다시 원점으로 돌아오는 성질을 이용하여 줄일 수 있었던 로직
for (int count = 0; count < nowCount; ++count) {
int clock = 0;
while (SWITCH[switchNum][clock] != -1) {
clocks[SWITCH[switchNum][clock]] += 3;
clock++;
}
}
...
for (int count = 0; count < nowCount; ++count) {
int clock = 0;
while (SWITCH[switchNum][clock] != -1) {
clocks[SWITCH[switchNum][clock]] -= 3;
clock++;
}
}for (int count = 0; count < 4; ++count) {
answer = min(count + solve(switchNum + 1, clocks),answer);
int clock = 0;
while (SWITCH[switchNum][clock] != -1) {
clocks[SWITCH[switchNum][clock]] += 3;
clock++;
}
}-
이미 count만큼 돌리고 있는 반복문이 있기때문에 3배의 연산작업을 하던 기존의 소스를 책에서는 다음과 같이 이미 돌리고 있는 반복문에 갱신 소스를 넣었다.
-
또한 count의 합 역시 계속 하위 노드로 내려주는 형식이 아닌 올라오면서 이전 카운트의 최소를 선택해서 합해서 올리는 방식으로 하여 파라미터를 간단히 하고 파라미터의 연산 속도를 줄였다.