정글에서 온 개발자
1/2 TIL (짧음) sliding 윈도우 주의, .count()로 키 찾지 말기 본문
sliding window
다음 코드는 멋있긴 하지만 겁나 느리다.
int tribonacci(int n) {
array<int, 3> arr = {0,1,1};
for(int i=3; i<=n; i++){
arr[i%3] = arr[(i-1)%3] + arr[(i-2)%3] + arr[(i-3)%3];
}
return arr[n%3];
}
아래 코드처럼 대입 저글링을 하는 게 더 빠르다.
int tribonacci(int n) {
array<int,3> arr = {0,1,1};
for(int i=3; i<=n; i++){
int temp = arr[0] + arr[1] + arr[2];
arr[0] = arr[1];
arr[1] = arr[2];
arr[2] = temp;
}
if (n==0) {
return arr[0];
} else if(n==1) {
return arr[1];
}
return arr[2];
}
아니면 차라리 array 대신 a,b,c 변수를 선언해놓고 저글링 하는 것도 괜찮다.
map에서 count로 키 여부 확인하면
느리다.
.find() 는 찾으면 바로 반환하는 반면, .count() 는 map의 특성상 key가 하나임에도 불구하고 템플릿 메소드로써 모든 값을 찾는 추가 로직이 들어갈 수 있기 때문에 느리다.
'TIL' 카테고리의 다른 글
1/4 TIL 목과 테스트 취약성 (1) | 2025.01.05 |
---|---|
1/3 TIL interval관련 알고리즘, c++ sort 팁 (0) | 2025.01.03 |
1/1 오픈소스, C++ (0) | 2025.01.01 |
12/31 TIL C++ 소소한 배움 (0) | 2024.12.31 |
12/30 TIL C++ 알고리즘을 위한 STL 소소팁 (0) | 2024.12.30 |