스터디/C++ 2

[C++] 절댓값 빠르게 구하기

C++ 에는 절댓값을 구할 수 있는 함수 abs 함수가 있습니다. abs - C++ Reference 12345678910111213 /* abs example */ #include /* printf */ #include /* abs */ int main () { int n,m; n=abs(23); m=abs(-11); printf ("n=%d\n",n); printf ("m=%d\n",m); return 0; } www.cplusplus.com 이 함수를 이용하게 되면 함수 호출에 대한 페널티를 받기 때문에 if 혹은 수의 특성을 이용해서 구해 시간을 줄일 수 있습니다. #define bit_abs(x) ~x + 1 정수형인 int, long long의 경우 왼쪽 끝의 비트가 부호를 나타내므로 0x80..

스터디/C++ 2021.02.20

[C++] struct, pair 비교

활용 문제 : www.acmicpc.net/problem/2357 2357번: 최솟값과 최댓값 N(1 ≤ N ≤ 100,000)개의 정수들이 있을 때, a번째 정수부터 b번째 정수까지 중에서 제일 작은 정수, 또는 제일 큰 정수를 찾는 것은 어려운 일이 아니다. 하지만 이와 같은 a, b의 쌍이 M(1 ≤ M ≤ 100 www.acmicpc.net 백준 문제와 테스트 케이스를 이용해서 속도 비교를 해 보았습니다. pair의 경우 객체 메서드 생성에 의해 조금 느린 것을 볼 수 있지만 거의 차이가 보이지 않아 간단한 벤치마킹 코드를 작성해서 비교해 보았습니다. 백준 테스트 케이스를 얻을 수 없어서 std::sort 함수를 통해 성능을 비교하도록 하겠습니다. sort 함수에서 2차원 배열을 사용하기 위해서는..

스터디/C++ 2020.12.17