목록2024/01 (48)
개발하는 리프터 꽃게맨입니다.
https://powerclabman.tistory.com/77 [WinAPI] hWnd 윈도우 핸들, hDC hWnd 핸들 윈도우란 뭔가? 윈도우의 핸들은 운영체제의 커널 오브젝트를 사용하기 위해 필요한 장치라고 볼 수 있습니다. 우리가 프로그램으로 만든 윈도우는 고유 식별 id가 있습니다. 이런 고유 powerclabman.tistory.com 이전 포스팅에서 말했듯 GetMessage는 게임 루프를 돌리는데 적합하지 않습니다. 게임은 보통 1초에 60번의 업데이트 및 렌더링을 제공해야하는데, GetMessage의 경우 메시지 큐에서 메시지를 꺼내고, 어떤 메시지인지 확인하는 과정이 시간이 생각보다 많이 걸리기 때문이죠. 더하여 메시지 큐에 메시지를 넣어주지 않으면 무한정 대기하는 참사가 일어납니다...
함수 수학에서 함수는 어떤 집합의 각 원소를 다른 집합의 유일한 원소에 대응시키는 이항 관계를 뜻합니다. 한 변수의 값에 따라 다른 한 변수의 값이 정해질 때, 후자는 전자의 함수가 된다. 라고 말할 수 있죠 함수가 되기 위해서는 몇 가지 조건을 만족해야 합니다. 1) 함수가 성립되기 위한 조건 (1) 집합 X, Y가 있을 때 집합 X의 한 원소 x가 집합 Y의 원소에 유일하게 대응해야 한다. (2) 집합 X의 모든 원소가 집합 Y의 원소와 대응해야 한다. 2) 함수가 아닌 대응 관계 (1) 집합 X의 어떤 한 요소가 집합 Y의 원소와 대응하지 않을 때 함수라고 부르지 않는다. (2) 집합 x의 한 원소가 집합 Y의 2개 이상의 원소와 대응할 때 함수라고 부르지 않는다. 3) 함수에 관련된 주요 용어 (..
hWnd 핸들 윈도우란 뭔가? 윈도우의 핸들은 운영체제의 커널 오브젝트를 사용하기 위해 필요한 장치라고 볼 수 있습니다. 우리가 프로그램으로 만든 윈도우는 고유 식별 id가 있습니다. 이런 고유 식별 id를 HWND로 관리하고 있다고 보시면 됩니다. 객체가 메모리단에 잡히긴 했는데 우리가 함부로 접근할 수 없습니다. 윈도우는 운영체제가 관리하는 객체이기 때문이죠. 그래서 우리는 hwnd라는 id를 통해서 윈도우를 간접적으로 다뤄야만 하는 것입니다. 윈도우에서 동작하는 프로그램을 만들기 위해서는 무조건 hwnd를 다뤄야만 합니다. 화면에 그림을 그리는 것 또한 hwnd에 접근해서 그려줘야만 하죠 이런 식으로 말이죠. 추가적으로 윈도우 프로그래밍을 할 때는 이 H 자료형 시리즈가 중요합니다. HPEN HDC..
https://www.acmicpc.net/problem/13334 13334번: 철로 입력은 표준입력을 사용한다. 첫 번째 줄에 사람 수를 나타내는 양의 정수 n (1 ≤ n ≤ 100,000)이 주어진다. 다음 n개의 각 줄에 정수 쌍 (hi, oi)가 주어진다. 여기서 hi와 oi는 −100,000,000이상, 100,000,0 www.acmicpc.net 1. 문제 2. 아이디어 이 문제는 기본적으로 스위핑 알고리즘을 사용해서 풀이합니다. 스위핑 알고리즘은 뜻 그대로 휩쓸고 지나가며 문제를 해결하는 방식으로, 특정 기준에 따라 정렬한 후 순서대로 처리하는 알고리즘입니다. 그러므로 스위핑 알고리즘의 복잡도는 O(N log N + N) = O(N log N) 의 복잡도를 가집니다. 즉, 이 문제는 선..
https://www.acmicpc.net/problem/15903 15903번: 카드 합체 놀이 첫 번째 줄에 카드의 개수를 나타내는 수 n(2 ≤ n ≤ 1,000)과 카드 합체를 몇 번 하는지를 나타내는 수 m(0 ≤ m ≤ 15×n)이 주어진다. 두 번째 줄에 맨 처음 카드의 상태를 나타내는 n개의 자연수 a1, www.acmicpc.net 1. 문제 2. 아이디어 기본적으로 그리디 알고리즘이다. 가장 작은 카드를 더해서 카드 뭉치를 업데이트해주면 된다. 그러면 가장 작은 요소로 배열을 정렬해서 하는 방법이 있는데, 이는 조금 문제가 있다. 왜냐면, 업데이트 + 정렬 + 업데이트 + 정렬은 생각보다 비용이 크기 때문이다. 정렬의 경우 아무리 빨라봐야 평균 n log n 시간 복잡도가 소모된다. 시..