python보다 메모리 관리가 좋은 c++도 종종 시간 초과 문제가 발생합니다. ios_base::sync_with_studio(false); cin_tie(NULL); cout_tie(NULL); 이를 해결하기 위해, 위 코드로 해결하는 사례를 종종 볼 수 있습니다. 이 코드가 어떻게 시간 초과 문제를 해결해 주는지 궁금했습니다. 참고로 아래의 방법은 정공법이 아닌 일종의 편법이므로 통하지 않을 수 있습니다. 1. ios_base::sync_with_studio(false); 헤더를 보면 C++의 표준 입출력은 C와 다르게 구현되어 있음을 알 수 있습니다. C++에서 입출력 작업을 할 때마다 C의 표준 입출력과 동기화 되도록 설정되어 있는데, 이 과정에서 딜레이가 발생합니다. 따라서, ios_base:..
전체 글
fac, si facisC++에서 정렬 알고리즘은 직접 구현보다는 STL에서 제공하는 sort( ) 함수를 사용하는 것이 효율적입니다. sort( ) 함수는 헤더를 include 하면 사용하실 수 있습니다. 이 함수의 시간 복잡도는 nlogn 입니다. intro sort라는 정렬 방식을 바탕으로 구현되어 heap sort와 insertion sort를 섞은 방식입니다. 최악의 경우 n^2 시간복잡도를 가지는 quick sort 와 달리 최악의 경우에도 O(nlogn)을 보장합니다. #include #include using namespace std; bool desc(int a, int b) { return a>b; } int main() { int arr[10] = {3, 5, 9, 7, 8, 1, 4, 2, 10, 6}; ..
NIT 머리에 있는 벌레나 기생충을 뜻하는데, 중요하지는 않지만 더 나은 방법이 있다는 의견을 남기고 싶을 때 사용합니다. WIP Work In Progress 작업이 아직 진행 중으로, 작업물을 아직 병합하지 않았을 때 사용합니다. TL;DR Too Long; Didn't Read 코드가 너무 길어서 읽지 못했을 때 사용합니다. IMO I My Opinion '개인적인 제 의견으로' 라는 의미로 어떤 의견을 낼 때 앞에 문장 앞에 접두어로 자주 사용합니다. LGTM Look Good To Me '코드가 문제 없이 나에게 좋아보인다' 라는 의미로 사용합니다. ACK Acknowledgement 승인을 남길 때 사용합니다. ACK 라고만 남긴다면 코드를 확인한 건지, 테스트까지 해본 건지, 그냥 승인한 건..