<aside> 💡
알고리즘 기출은 C++로 풀이
</aside>
<aside> 💡
시간 및 메모리 제한
</aside>
<aside> 💡
컴퓨터는 1초에 대략 3-5억
</aside>
int func1(int arr[], int n) {
int cnt = 0; // cnt 대입 1번
for(int i = 0; i < n; i++) { // i 대입, 1번 / n번 반복 ( i와 n을 비교 1번, i 증가 1번 )
if(arr[i] % 5 == 0) cnt++; // n번 반복 ( arr[i]%5 연산 1번, 0과 비교 1번, cnt 증감 1번 )
}
return cnt; // 반환 1번
}
위 코드에서 필요한 연산은 1+1+n*(2+2+1)+1 = 5n + 3
⇒ n에 비례한 연산횟수, 대표항만 남겨서 나타내면 Big-O표기법 O(N)
ex)
n = 1,000,000, 대략 5,000,000만번 연산
…
n = 1,000,000,000, 대략 5억번 연산 ( 마지노선 )
c++은 포인터의 잘못된 사요이나, 인덱스 범위 초과, integer overflow와 같은 문제가 발생할 수 있고, 문자열 처리에 어려움이 있지만
실행속도에서의 이점과 알고리즘 학습에 대한 자료들이 대부분 C++로 제공되고 있기 때문에 구현에 기본적이 어려움이 없다면 C++이 조금 더 유리할 것이라고 생각