전체 글
[ C++ ] 프로그래머스: 없는 숫자 더하기
안녕하세요? 수구리입니다. 이번 포스팅은 프로그래머스 문제를 풀어보려고 합니다. Level 1이므로 가볍게 풀어보고 지나가도록 하겠습니다. 문제는 아래 링크에 있습니다. [ 문제 ] 프로그래머스 : 없는 숫자 더하기 https://programmers.co.kr/learn/courses/30/lessons/86051 코딩테스트 연습 - 없는 숫자 더하기 0부터 9까지의 숫자 중 일부가 들어있는 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr [ 나의 풀이 ] #include #include using namespace std; int so..
[ python ] 백준 2839: 설탕 배달
안녕하세요? 수구리입니다. 이번 포스팅은 파이썬으로 그리디 문제를 풀어보려고 합니다. 그리디 알고리즘은 매 순간마다 이름처럼 가장 탐욕스러운 선택을 하는 알고리즘입니다. 하지만 이 알고리즘은 최적의 해를 찾는다는 보장은 하지 못합니다. 설탕 배달 문제는 아래 링크에 있으니 확인해주세요. [ 문제 ] 백준 2839: 설탕 배달 https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net [ 나의 풀이 ] # date : 2021.11.12 # problom : 2839..
[ Clean Code ] 클린 코딩을 하는 8가지 방법
안녕하세요? 수구리입니다. 이번 포스팅에서는 클린 코딩을 하는 8가지 방법과 간단한 예시들을 통해서 알아보겠습니다. 클린 코딩이 필요한 이유? 좋은 품질의 코드는 이해하기 쉽고 명확함. 또한 수정하기 쉬우며 확장하기가 쉽다. 따라서, 클린 코딩이 필요하다! 1. Naming Convention 개발자들 사이에서 공통적인 관습이 있다. 자바에서 변수 및 클래스의 이름 짓는 예시를 살펴보자. class UserService { private String firstName; public String getFirstName() { return firstName; } } 모든 변수나 함수 클래스들은 CamelCase 스타일로 한다. 변수와 클래스의 차이점은 위의 예시에서 볼 수 있듯이 클래스는 첫 자가 대문자이다..
[ Code Refactoring ] 코드 리팩토링에 대해서 알아보자
안녕하세요? 수구리입니다. 이번 포스팅에서는 Code Refactoring에 대한 내용에 대해서 알아보려고 합니다. 코드 리팩터링이란? 리팩터링은 사용하지 않는 코드 또는 중복된 코드를 지우고, 코드의 로직을 깨끗하고 이해하기 쉽게 디자인하는 것 이 개념은 Martin Fowler와 Kent Beck에 의해서 정의되었다고 한다. 이는 종종 최적화, 디버깅, 방어 코드 추가, 테스트하기 좋은 코드로 만드는 것과 혼동될 수 있다. 리팩터링의 목적 흔히 "리팩터링을 한다."라는 의미는 개발자의 실수를 만드는 것을 방지하는 것임에 유의하자 디자인에 작고 안전한 구조적 변화를 추가하는 것으로 리팩토링을 시작할 수 있는데 주의할 점은 항상 같은 동작, 기능을 수행해야 한다는 것이다. 리팩토링을 하면서 지속적으로 코..
[ Nest JS ] Hot reload 설정하기
안녕하세요? 수구리입니다. 이번 포스팅에서는 Nest 프로젝트에서 Hot reload 설정하는 방법에 대해서 알아보겠습니다. 우선 Hot reload란 무엇인지 알아야 겠죠? 대게 한 프로젝트를 빌드하고 실행했다고 생각해보겠습니다. 내가 원하는 결과가 바로바로 나온다면 정말 정말 좋겠지만.. 그렇지 않은 경우가 대부분일 겁니다. 따라서 원하는 결과에 도달할 때까지 빌드와 실행을 계속 반복하면서 작업을 한다면 아주 비효율적이라고 생각합니다. 그러므로 이 Nest에서 제공하는 Hot reload 기능을 적용하면 서버를 실행 중에 코드 부분이 바뀌어서 Ctrl + S를 누른다면 바로 그 수정사항이 반영되어서 알아서 빌드하고 서버를 재시작해줍니다. 이렇게 간단하게 알아보았고.. 그러면 바로 적용을 해보도록 하겠..
[ C++ ] 백준 1712: 손익 분기점
안녕하세요? 수구리입니다. 이번에 풀어볼 문제는 백준의 손익 분기점이라는 문제입니다. 너무 간단하다고 생각해서 바로 풀었지만 시간 초과가 났었습니다. 문제의 정답률을 보니 약 25% 더라구요.. ㅎ 그래서 차근차근 다시 생각해보고 적절한 답을 풀어냈던 것 같습니다. 그때의 기억을 되살려보면서 복습 해보도록 하겠습니다. 문제는 아래 링크에 있습니다. 한번씩 생각해보시는 것도 좋아 보이네요. [ 문제 ] 1712: 손익 분기점 https://www.acmicpc.net/problem/1712 1712번: 손익분기점 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 www..
[ MFC ] list control header 클릭 시 정렬 기능 이벤트 구현
안녕하세요? 수구리입니다. 이번 포스팅은 MFC에서 자주 쓰이는 list control에 대한 내용입니다. list control은 테이블 모양을 하고 있으며, header에는 클릭 시 이벤트를 추가할 수 있습니다. 위의 사진이 MFC에서 list control을 사용한 부분입니다. 지금 상태는 Usage rate라는 list control header 부분에 마우스를 올려놓은 상태입니다. 이벤트를 아직 설정하지 않았으므로 클릭 시 아무런 동작을 하지 않고 있는데, 하나씩 추가해 주도록 하겠습니다. 우선 하려는 것은 각 header(PID, Name, Usage rate)를 클릭 시 오름차순 정렬을 하고 한번 더 클릭 시 반대로 내림차순으로 정렬을 하려고 하는 것입니다. 우선 우리가 제어하려고 하는 li..
[ Wmi Delphi Code Creator ] WDCC 사용법을 알아보자
안녕하세요? 수구리입니다. 이번 포스팅에서는 WDCC라는 유용한 오픈소스를 소개해볼까 합니다. [ WMI란? ] 우선, WMI는 무엇인지에 대해 간략하게 알아보자면.. Windows Management Instrumentation이라고 합니다. 이는 윈도우 관리 도구를 뜻하며, 기본적으로 윈도우 2000 이상의 MS 운영 체제에 이미 다 설치가 되어있습니다. 이를 사용하여 윈도우의 리소스에 접근해 여러 가지 설정 및 관리를 할 수 있습니다. 그래서 이런걸로 뭘 할 수가 있느냐? 대표적으로 작업관리자를 열고, 성능 tap에 들어가면 하단에 리소스 모니터라고 있습니다. 이 리소스 모니터에 표시되어지는 모든 정보들을 WMI를 사용해 가져올 수도 있고, 로컬 컴퓨터뿐만 아니라 원격으로도 PC를 제어할 수도 있다..
[ MFC ] Ontimer와 SetTimer, KillTimer 사용법
안녕하세요? 수구리입니다. 이전 포스팅에서는 간단한 MFC Thread 예제를 살펴보았었는데요 최근에 간단한 프로젝트로 pc의 작업 관리자에서 리소스 모니터처럼 PC의 자원들 (CPU, RAM, DISK 등..)을 실시간으로 모니터링하는 Win32 app을 만들어보고 있습니다. 그래서 생각한게 CPU 사용량을 가져오기 위한 Thread, RAM의 사용량을 가져오기 위한 Thread 등등을 생각하고 있었는데 Thread 기능과 비슷한? Ontimer와 SetTimer함수가 있더라고요 그래서 제가 진행하고 있는 코드에서 어떤 식으로 활용했는지 기록해보겠습니다. [ Ontimer와 SetTimer? ] 우선 위의 함수들은 WM_TIMER라는 이벤트가 발생할 경우 콜백되어지는 함수입니다. WM_TIME을 설정하..
[ C++ ] 백준 2775번: 부녀회장이 될테야
안녕하세요? 수구리입니다. 이번 포스팅에서는 단계별로 풀어보기의 2차원 배열 문제를 가져왔습니다. 2차원 배열은 쉽게 말해서 격자모양의 배열이라고 생각하시면 됩니다. 각각의 원소에 접근하는 방식도 일차원 배열과 크게 다를 점이 없습니다. 문제를 풀어보면서 설명을 이어나가겠습니다. 아래는 백준 문제 링크입니다. 문제를 보시고 생각해보고 풀이를 봐주세요! [ 문제 ] 2755: 부녀회장이 될테야 https://www.acmicpc.net/problem/2775 2775번: 부녀회장이 될테야 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다 www.acmicpc.net [ 나의 풀이 ] #include using ..