전체 글
-
Python의 heapq는 sort보다 빠른가..?카테고리 없음 2022. 12. 15. 20:41
코딩테스트 문제를 풀던 중, 다른 사람의 풀이에서 정렬을 용이하게 하기 위해 heapq를 사용하는것을 보았다. 필자는 heapq를 사용하면 빠른가 싶어서 heapq를 사용했으나, 여전히 시간초과가 되는 것을 보았다. 이에 heapq는 정말로 빠른가 하는 것에 의문이 들었다. heapq가 무엇이고 어떻게 사용하는지는 아래 링크의 글을 통해 알게되었다. (글의 나머지 부분에서 설명할 heappush, heappop에 대한 설명 나옴) 파이썬의 heapq 모듈로 힙 자료구조 사용하기 | Engineering Blog by Dale Seo heappush와 sort의 실행 시간을 비교하기 위해 아래와 같은 코드를 만들어 테스트해보았다. import random from heapq import heappu..
-
c++ 참조자, 생성자, 복사생성자카테고리 없음 2022. 1. 4. 21:39
요새 자바 타입(?)의 언어만 하다가 오랜만에 c++을 했더니 헷갈리는 것들이 많아서 c++에서 헷갈리는 것들을 정리해보았다. 1. 참조자 참조자에 대해 너무 잘 설명해 놓은 글이 있어 링크로 대체한다. https://modoocode.com/141 참조자는 포인터 대신 사용할 수 있다. 배열이나 부피가 큰 클래스를 함수의 매개변수로 전달해야 하는 경우, 객체의 본체를 복사해서 전달하면 메모리 면에서 비효율적이다. 참조자를 사용하면 마치 포인터처럼 주소만 전달해서 메모리 효율을 높일 수 있고, 전달받은 참조자를 사용할때는 &를 사용할 필요 없이 마치 본체인 양 쓰면 된다. 참조자가 무엇인지에 대한 설명은 생략하고 둘의 차이점만 간략하게 요약한 것: Peter의 우아한 프로그래밍 :: [C++] 포인터(P..
-
Wait와 await의 차이 & Deadlock이 발생하는 경우 해결법카테고리 없음 2021. 9. 28. 01:26
1번 코드: public async Task DoSomething() { await SomethingAwaitable(); ... } public async void Button_Click() // 버튼 클릭으로 실행되는 함수 { await DoSomething(); ... } 위와 같은 코드가 있다. 위의 코드를 아래와 같이 변경하면 어떻게 될까? 2번 코드: public async Task DoSomething() { await SomethingAwaitable(); ... } public void Button_Click() // 버튼 클릭으로 실행되는 함수 { DoSomething().Wait(); ... } await 키워드를 빼버리고 DoSomething이 반환하는 Task를 Wait하도록 변경..