본문 바로가기

분류 전체보기52

윈도우 - MFC 코드분석 PreCreateWindow() CWnd::PreCreateWindow() 에 대해서 알아보았다. 원형은 아래와 같다. virtual BOOL PreCreateWindow(CREATESTRUCT &cs); 특징 1) 이후 생성될 윈도우 속성을 수정한다. : OnCreate() 보다 앞서 호출되며, 생성하고자 하는 윈도우의 각종 속성을 변경하고자 할 경우 사용한다. 2) 매개변수 CREATESTRUCT 를 수정하여 생성될 윈도우의 속성을 변경한다. : CREATESTRUCT 구조체 구조는 다음과 같다. typedef struct tagCREATESTRUCTA { LPVOID lpCreateParams; HINSTANCE hInstance; HMENU hMenu; HWND hwndParent; int cy; int cx; int y; in.. 2021. 10. 19.
[삼성기출] 백준 - C++ 상어 초등학교 BFS와 시뮬레이션 문제이다. 풀이 - 1. Solution 코드 #include const int MAX_N = 20; const int EMPTY = 0; const int MAX_LIKE_FRIENDS = 4; const int dx[] = { 1, -1, 0, 0 }; const int dy[] = { 0, 0, 1, -1 }; const int score[] = { 0, 1, 10, 100, 1000 }; struct Students { int ID; int likeFriends[4]; }students[MAX_N * MAX_N]; struct Node { int x, y; // map[][] 좌표 int emptyCnt; // 근접한 빈 칸 개수 int likeFriendsCnt; // 근접한.. 2021. 10. 17.
[삼성기출] 백준 - C++ 마법사 상어와 비바라기 구현과 시뮬레이션 문제이다. 삼성기출인 '마법사 상어와 블리자드'를 해결했다면, 간단하게 해결할 수 있다. https://code-block.tistory.com/10 (마법사 상어와 블리자드) 풀이 1. 구름 이동 dx[] = {0, 0, -1, -1, -1, 0, 1, 1, 1}, dy[] = {0, -1, -1, 0, 1, 1, 1, 0, -1} 을 이용하여 '상하좌우 + 대각선'을 표현한다. 구름을 이동하고, map의 물 양을 증가한다. visited를 true 로 바꾼다. 2. 대각선 방향의 물 복사 3. 새로운 구름 생성 vector preList를 선언하여, 새로운 구름이 생성되기 전의 vector cloud를 저장한다. preList의 벡터를 반복하며, visited를 false로 바꿔준다.. 2021. 10. 16.
[삼성기출] 백준 - C++ 마법사 상어와 블리자드 구현과 시뮬레이션 문제이다. 2021 상반기 문제 중 상대적으로 난이도가 높은 문제였다고 한다. 풀이 1. 마법 dx[], dy[], DIR[] 을 이용하여 좌표로 접근하기 삭제된 구슬 자리는 빈칸(EMPTY = 0)으로 채워주기 2. 폭파 map을 linearMap에 저장하기 (= Grid to Linear) vector mList 를 선언해서, 폭파되지 않은 linearMap[idx] 는 mList 에 push_back()하기. 폭파됐을 경우에 flag = true index1, index2를 이용해서 동일한 번호의 구슬 개수를 찾는다. index2는 while()을 이용하여 index2++ 된다. 삭제된 개수는 index2 - index1, 삭제된 구슬번호는 linearMap[index1] 이므로,.. 2021. 10. 15.