제목 : tsconfig.json 안의 데코레이터 활성 옵션들나는 프로그래머스 부트캠프에서 NestJS 프로젝트를 진행 할 때,Nest CLI 를 통해서 프로젝트 생성, 및 컨트롤러, 서비스, 테스트 파일을 생성했다.Nest CLI 를 통해서 프로젝트 관리를 할 경우, 굳이 구성 (config.json 파일들) 요소들을 건드릴 필요 없이, 곧바로 프로젝트 코드를 구성하면 되었다.Node.js 를 통한 의존성 주입과 프로젝트 관리에 대한 정보가 부족하여 Udemy 에서 강의를 듣는데,아예 npm 명령어를 이용하여 처음부터 프로젝트를 구성하게 됐다.이 과정에서 tsconfig.json 파일을 직접 생성하여 옵션들을 넣게 되었는데,완전히 처음 보는 옵션들이 있어, 이 옵션의 목적과 기능을 작성하려고 한다.1...
전체 글
신 기술이 항상 나오는 이 시대에 기초의 중요성은 더욱 중요해졌습니다. 항상 이에 적응하기 위해 기초를 쌓으려 배움을 기록하는 장소입니다.제목 : 수 정렬하기문제N 개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.입력첫째 줄에 수의 개수 N (1 N 둘째 줄 부터 N 개의 줄에는 수가 주어진다.이 수는 절대값이 1,000 보다 작거나 같은 정수이다.수는 중복되지 않는다.출력첫째 줄 부터 N 개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.예제 입력 및 출력예제 입력예제 출력55234112345정렬 문제를 푸는 방식에는 2 가지 방식이 존재한다.java.util.* 패키지에 존재하는 유틸 정렬 메서드로 처리하는 방식직접 정렬 메서드를 선언하여 처리하는 방식어떠한 방식을 선택해도 상관이 없으나, 자바의 라이브러리들을 테스팅을 훌륭히 거친 상태이기 때문에,정렬에 대한 깊은 이해를 먼저 하지 않고, 먼저 풀..
제목 : 설탕 배달문제상근이는 요즘 설탕공장에서 설탕을 배달하고 있다.상근이는 지금 사탕가게에 설탕을 정확하게 N 킬로그램을 배달해야 한다.설탕공장에서 만드는 설탕은 봉지에 담겨져 있다.봉지는 3 킬로그램 봉지와 5 킬로그램 봉지가 있다.상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다.예를 들어, 18 킬로그램 설탕을 배달해야 할 때, 3 킬로그램 봉지 6 개를 가져가도 되지만,5 킬로그램 3 개 와 3 킬로그램 1개를 배달하면, 더 적은 개수의 봉지를 배달할 수 있다.상근이가 설탕을 정확하게 N 킬로그램 배달해야 할 때, 봉지 몇 개를 가져가면 되는지 그 수를 구하는 프로그램을 작성하시오.입력첫째 줄에 N 이 주어진다. (3 N 출력상근이가 배달하는 봉지의 최소 개수를 출력한다.만약, 정..
제목 : 체스판 다시 칠하기문제지민이는 자신의 저택에서 MN 개의 단위 정사각형으로 나누어져 있는 M x N 크기의 보드를 찾았다.어떤 정사각형은 검은색으로 칠해져 있고, 나머지는 흰색으로 칠해져 있다.지민이는 이 보드를 잘라서 8 x 8 크기의 체스판으로 만들려고 한다.체스판은 검은색과 흰색이 번갈아서 칠해져 있어야 한다.구체적으로, 각 칸이 검은색과 흰색 중 하나로 색칠되어 있고, 변을 공유하는 두 개의 사각형은 다른 색으로 칠해져 있어야 한다.따라서 이 정의를 따르면 체스판을 색칠하는 경우는 두 가지 뿐이다.하나는 맨 왼쪽 위 칸이 흰색인 경우, 하나는 검은색인 경우이다.보드가 체스판처럼 칠해져 있다는 보장이 없어서, 지민이는 8 x 8 크기의 체스판으로 잘라낸 후에,몇 개의 정사각형을 다시 칠해야..
제목 : 블랙잭문제카지노에서 제일 인기 있는 게임 블랙잭의 규칙은 상당히 쉽다.카드의 합이 21 을 넘지 않는 한도 내에서, 카드의 합을 최대한 크게 만드는 게임이다.블랙잭은 카지노마다 다양한 규정이 있다.한국 최고의 블랙잭 고수 김정인은 새로운 블랙잭 규칙을 만들어 상근, 창영이와 게임하려고 한다.김정인 버전의 블랙잭에서는 각 카드에 양의 정수가 쓰여 있다.그 다음, 딜러는 N 장의 카드를 모두 숫자가 보이도록 바닥에 놓는다.그런 후에, 딜러는 숫자 M 을 크게 외친다.이제 플레이어는 제한된 시간 안에 N 장의 카드 중에서 3 장의 카드를 골라야 한다.블랙잭 변형 게임이기 때문에, 플레이어가 고른 카드의 합은 M 을 넘지 않으면서, M 과 최대한 가깝게 만들어야 한다.N 장의 카드에 써져 있는 숫자가 ..
제목 : 재귀에 대하여 - Recursive들어가며재귀란 무엇일까?재귀란, 스스로를 다시 호출하는 행위 라고 넓게 볼 수 있다.왜 다시 스스로를 호출하는 행동을 하며, 이것이 왜 필요해 졌을까?이 포스팅은 스스로 재귀 - Recursive 라는 알고리즘이 왜 필요할까에 대해서 고찰하는 게시물이다.배경막연히 프로그래밍 기초를 익히던 대학생 시절에는, 그리 중요하지 않은 개념 중 하나라고 생각했다.사실 백준 알고리즘, LeetCode 와 같은 사이트를 풀다 보면, 재귀의 용도는 간단하게 이러한 경우가 있다.Brute Force - 모든 경우의 수 or 집합을 적용시켜 답을 확인하는 기법Searching - 원하는 답이 나올 때 까지, 스스로의 코드를 다시 실행하는 기법Sorting - 모든 배열이 정렬 될 ..
제목 : 분수찾기문제무한히 큰 배열에 다음과 같이 분수들이 적혀있다.1/11/21/31/41/5...2/12/22/32/4......3/13/23/3.........4/14/2............5/1.................................이와 같이 나열된 분수들을 1/1 -> 1/2 -> 2/1 -> 3/1 -> 2/2 -> ... 와 같은 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, ... 분수라고 하자.X 가 주어졌을 때, X 번째 분수를 구하는 프로그램을 작성하시오.입력첫째 줄에 X (1 X 출력첫째 줄에 분수를 출력한다.예제 입력 11예제 출력 11/1예제 입력 22예제 출력 21/2예제 입력 33예제 출력 32/1아마 단계별로 풀어보기 를 통해 알고리즘을 ..
제목 : 중앙 이동 알고리즘문제상근이는 친구들과 함께 SF 영화를 찍으려고 한다.이 영화는 외계 지형이 필요하다.실제로 우주선을 타고 와계 행성에 가서 촬영을 할 수 없기 때문에, 컴퓨터 그래픽으로 CG 처리를 하려 한다.외계 지형은 중앙 이동 알고리즘을 이용해서 만들려고 한다.알고리즘을 시작하면서 상근이는 정사각형을 이루는 점 4 개를 고른다. 그 후에는 다음과 같은 과정을 거쳐서 지형을 만든다. 정사각형의 각 변의 중앙에 점을 하나 추가한다.정사각형의 중심에 점을 하나 추가한다.초기 상태에서 위와 같은 과정을 한 번 거치면 총 4 개의 정사각형이 새로 생긴다.이와 같은 과정을 상근이가 만족할 때 까지 계속한다.아래 그림은 총 2 번 거쳤을 때 까지의 모습이다.상근이는 어떤 점은 한 개 보다 많은 정사..
제목 : 진법 변환문제B 진법 수 N 이 주어진다.이 수를 10 진법으로 바꿔 출력하는 프로그램을 작성하시오.10 진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다.이런 경우에는 다음과 같이 알파벳 대문자를 사용한다.A : 10B : 11...F : 15...Y : 34Z : 35입력첫째 줄에 N 과 B 가 주어진다. (2 B B 진법 수 N 을 10 진법으로 바꾸면, 항상 10억보다 작거나 같다.출력첫째 줄 B 진법 수 N 을 10 진법으로 출력한다.예제 입력 1ZZZZZ 36예제 출력 160466175어느 언어 프로그램에나 진법을 쉽게 변환할 수 있는 메서드나 편의 클래스는 존재한다.하지만, 하나의 언어에 대한 숙련도를 보는 것이 아니라,일반 수학을 다룸으로서 뇌를 "말랑" 하게 만드는 데 ..
현재까지 이어진 상황으로서,하나의 컴포넌트가 state 를 가질 수 있게 만들어 두었다.하지만, 상위 컴포넌트의 state 가 하위 컴포넌트의 props 가 될 수 있다.이 때, state, setState() 의 메서드는 EventTarget 으로부터 파생하였다.Working File : useState.jsclass CustomEventTarget extends EventTarget { constructor(secretValue) { super(); this._secret = secretValue; } setSecret = (newSecret) => { this._secret = newSecret; } getSecret = () => {..