-
시간초과 feat.O(1)ps 2024. 8. 8. 10:37
BOJ 2869번 문제 시간제한 0.25초
for loop 1억번당 대략 1초라고 한다
입력 범위가 10억까지이니 아래와 같은 코드는 시간제한이 발생할 수 있다
while(1) { day++; sum += a; if(sum >= v) break; sum -= b; } printf("%d", day);
for loop가 아닌 O(1)로 계산할 수 있는 방법을 찾아야 한다
방법은 아래와 같다
day = (v-a) / (a-b); mod = (v-a) % (a-b); if(mod == 0) day++; else day = day + 2; printf("%d", day);
'ps' 카테고리의 다른 글
qsort() in C (0) 2024.08.28 Counting sort (0) 2024.08.26 시간복잡도2 BOJ 24267 (0) 2024.08.19 시간복잡도 BOJ 24265 (0) 2024.08.19 strlen() in for loop (0) 2024.07.29