[Windows API] Win32 API를 활용해 작업 영역 얻기
개발/Win32 API Programming2022. 1. 27. 19:46[Windows API] Win32 API를 활용해 작업 영역 얻기

목표 Win32 API를 활용해 작업 영역의 크기를 알아보도록 하겠습니다. 목차 클릭하면 해당 목차로 이동합니다. 1. 작업 영역(Client Area) 2. GetClientRect 함수를 통해 작업 영역 얻기 정리 개요 기존 프로젝트를 실행하고 윈도우의 크기를 변경하면 사이즈는 바뀌지만, 내용은 그대로 있는 것을 알 수 있습니다. 사이즈를 줄이면 내용이 안보이는 상황입니다. 대부분의 웹사이트를 접속하면 브라우저의 크기를 변경하면 크기에 맞게 내용이 이동하는 것을 보신 적이 있을 것입니다. 이는 크기가 바뀌어도 사용자가 내용을 확인할 수 있도록 반응형 웹사이트로 만든 것입니다. Win32 API로 만든 윈도우도 이와 같은 기능을 구현할 수 있습니다. 1. 작업 영역(Client Area) 우선 작업 영..

[백준] 5430번 AC, 파이썬 문제 풀이
Computer Science/알고리즘 문제2022. 1. 27. 15:15[백준] 5430번 AC, 파이썬 문제 풀이

문제 백준 5430번, AC 문제를 해결했습니다. 배열을 뒤집거나 첫 번째 원소를 제거하는 함수를 구현하는 문제입니다. https://www.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net 문제 선영이는 주말에 할 일이 없어서 새로운 언어 AC를 만들었다. AC는 정수 배열에 연산을 하기 위해 만든 언어이다. 이 언어에는 두 가지 함수 R(뒤집기)과 D(버리기)가 있다. 함수 R은 배열에 있는 수의 순서를 뒤집는 함수이고, D는 첫 번째 수를 버리는 함수이다. 배열이 비어있는데 D를 사용한 경우에는 에러가 발생한다. 함수..

[백준] 1260번 DFS와 BFS, 파이썬 문제 풀이
Computer Science/알고리즘 문제2022. 1. 26. 15:16[백준] 1260번 DFS와 BFS, 파이썬 문제 풀이

문제 백준 1260번 DFS와 BFS를 구현하는 문제를 해결했습니다. https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 문제 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다. 입력 첫째 줄에 정점의 ..

[백준] 2606번 바이러스, 파이썬 문제 풀이, DFS와 BFS 차이
Computer Science/알고리즘 문제2022. 1. 25. 16:23[백준] 2606번 바이러스, 파이썬 문제 풀이, DFS와 BFS 차이

문제 백준 2606번 바이러스 문제를 해결했습니다. 1번 컴퓨터와 연결되어 있는 컴퓨터, 간접적으로 연결되어 있는 컴퓨터도 웜 바이러스에 감염됩니다. 이 때, 1번으로부터 감염된 컴퓨터가 몇 대인지 찾는 문제입니다. https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 문제 풀이 컴퓨터간 상하관계나 방향이 없기 때문에 그래프 문제로 해결할 수 있었습니다. 1번과 연결되어 있는 컴퓨터를 탐색하는 문제이므로 DFS와 BFS로 해결할 수 있습니다. 이번 문제는..

[백준] 2579번 계단 오르기, 파이썬 문제 풀이
Computer Science/알고리즘 문제2022. 1. 24. 17:09[백준] 2579번 계단 오르기, 파이썬 문제 풀이

문제 백준 2579번 계단 오르기 문제를 해결했습니다. https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 문제와 그림이 함께 있기 때문에, 가독성을 위해 문제 내용은 생략하도록 하겠습니다. 링크를 참고해주세요! 문제 풀이 해당 문제는 세 가지 조건이 있는 문제입니다. 한 번에 한 계단 혹은 두 계단씩 오를 수 있다. 연속된 세 개의 계단을 모두 밟아서는 안된다. 단, 시작점은 계단에 포함되지 않는다. 마지막 도착 계단은 반드시 밟아야 한다. 해당 규칙을 지키..

[백준] 1463번 1로 만들기, 파이썬 문제 풀이
Computer Science/알고리즘 문제2022. 1. 21. 19:11[백준] 1463번 1로 만들기, 파이썬 문제 풀이

문제 백준 1463번 주어진 정수를 특정 연산을 통해 1로 만들 때, 최소한의 연산 횟수를 찾는 문제를 해결했습니다. https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 문제 정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다. X가 3으로 나누어 떨어지면, 3으로 나눈다. X가 2로 나누어 떨어지면, 2로 나눈다. 1을 뺀다. 정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최솟값을 출력하시오. 예시: 10 입력 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. ..

[백준] 1012번 유기농 배추, 파이썬 문제풀이
Computer Science/알고리즘 문제2022. 1. 20. 18:49[백준] 1012번 유기농 배추, 파이썬 문제풀이

문제 백준 1012번 유기농 배추 밭에 키우는 배추를 유기농으로 키우기 위해 지렁이를 얼마나 풀어놔야 할지 구하는 문제를 해결했습니다. https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 문제 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 효과적인 배추흰지렁이를 구입하기로 결심한다. 이 지렁이는 배추근처에 서식하며 해충을 잡아 ..

[Windows API] Win32 API의 백그라운드 작업과 콜백 함수
개발/Win32 API Programming2022. 1. 20. 01:16[Windows API] Win32 API의 백그라운드 작업과 콜백 함수

목표 Windows API를 활용해 백그라운드 작업을 하고, 콜백 함수에 대해서 이해하고 실습하도록 하겠습니다. 목차 클릭하면 해당 목차로 이동합니다. 백그라운드 작업 콜백 함수(Callback Function) 정리 개요 이전 포스팅에서 타이머에 대한 내용을 다뤘습니다. 타이머를 활용해서 백그라운드 작업을 할 수 있습니다. 또한, 타이머는 윈도우 프로시저 내에서 WM_TIMER 메세지를 처리하는 방식으로 활용했습니다. 작은 프로그램에선 상관이 없지만, 프로그램의 크기가 커진다면 윈도우 프로시저 내에서 모든 것을 처리한다면 복잡성이 올라가고 가독성도 떨어질 것입니다. 이번 포스팅에서는 타이머를 활용해 백그라운드 작업을 하는 것과 콜백 함수를 통해서 타이머를 처리하는 것에 대해서 알아보도록 하겠습니다. 백..

image