bbearcookie

Written by@bbearcookie
Frontend 개발자가 되려고 하는 컴퓨터공학과 학생입니다. React 와 Express 같은 JS, TS 기반의 기술에 관심이 있습니다.

Promise

ES6 이전의 비동기 처리 ES6 이전에는 자바스크립트로 비동기 작업의 처리를 할 때 콜백 함수를 인자로 전달하는 방식으로 비동기 작업의 처리 순서를 보장했었다. 이런 방식은 코드를 읽기 난잡해지는 콜백 지옥의 문제와 에러 핸들링을 유연하게 하기 어렵다는 문제가 있었다. 콜백 지옥 에러 핸들링 Promise 객체는 비동기 작업이 미래에 성공적으로 이…

[백준 18428] 감시 피하기

문제 https://www.acmicpc.net/problem/18428 아이디어 전체 맵에서 선생님이 존재하는 위치와 장애물을 설치할 수 있는 비어있는 공간의 위치를 2차원 배열로 각각 저장한다. 비어있는 공간에 장애물을 3군데 설치하는 경우의 수를 조합을 통해 구한다. 각 경우의 수마다 장애물을 설치한다. 선생의 위치로부터 상하좌우로 학생을…

TypeScript로 타입을 지정하면서

사이드 프로젝트를 진행하면서 TypeScript로 개발할 때 여러 타입에서 사용되는 공통 타입을 묶고, 세부 타입에서는 공통 타입의 일부 프로퍼티만 사용하고 싶은 경우에는 어떻게 해야 하는지 고민이 되었다. 처음에는 방법을 잘 모르기도 했고 각각의 타입에서 공통 타입으로 적용될 프로퍼티들은 과연 어떤 것들이 될지를 잘 가늠하지 못했어서 세부 타입마다 …

[백준 1715] 카드 정렬하기

문제 https://www.acmicpc.net/problem/1715 아이디어 숫자 카드 묶음을 합칠 때 비교 횟수를 최소로 하기 위해서는 가장 작은 크기의 숫자 카드끼리 먼저 합쳐야 한다. (그리디) 그렇기에 기본 입력 값의 숫자 카드 묶음을 오름차순으로 정렬하여 큐로 만들어놓고 가장 작은 두 개의 카드 묶음을 꺼내어 합친다. 합친 카드 묶음은 다시 …

[백준 2217] 로프

문제 https://www.acmicpc.net/problem/2217 아이디어 굵은 로프를 먼저 오게 정렬해서 순회하면 되는데, i번째 로프까지 사용할 때의 최대로 들어올릴 수 있는 중량은 다음 값 중 하나이다. 이전에 계산했던 최대 중량 현재 로프만 사용해서 들어올릴 수 있는 최대 중량 이전의 더 굵은 로프들과 현재 로프까지 묶어서 사용했을…

Express.js의 라우터 기능

Express.js의 Router 기능을 통해서 라우팅 경로를 지정하는데 의도치 않은 상황을 겪은 적이 있다. 예를 들어 경로에 대한 라우터와 경로에 대한 라우터를 지정하고 각각 으로 컨트롤러 로직을 등록했는데 에 요청해도 에 요청해도 똑같은 컨트롤러의 로직만 실행되는 것이었다. 원인은 객체를 참조한 것을 각 라우터가 공유해서 사용하도록 만들었기…

객체와 프로토타입

자바스크립트의 데이터 타입은 , 같은 원시 값을 제외하고는 모두 객체로 분류된다. 예를 들어서 이나 같은 타입도 모두 객체이다. 또한 자바스크립트에서 거의 모든 객체는 상위 객체인 의 인스턴스이다. 이번 글에서는 프로토타입 기반 언어인 자바스크립트에서 객체를 어떻게 생성하는지, 객체와 상속같은 개념을 어떻게 프로토타입을 활용해 사용할 수 있는지를 서술해…

[백준 14501] 퇴사

문제 https://www.acmicpc.net/problem/14501 아이디어 동적 프로그래밍을 이용해 각 회의를 진행할 때의 보수를 기록하고 이후에 다른 회의를 진행할 때에도 기록했던 보수를 활용하면서 새로운 회의를 진행하는게 최대 수익이 나오는지, 아니면 기존에 계산했던 회의를 진행하는게 최대 수익이 나오는지를 알아보면 된다. 를 ‘상담을 완료하는…

[백준 15661] 링크와 스타트

문제 https://www.acmicpc.net/problem/15661 아이디어 각 팀의 인원수는 반드시 같아야 할 필요는 없지만, 최소한 한 명의 멤버는 팀 내에 존재해야 한다. 그렇기에 스타트 팀의 멤버가 1명일 때부터 n-1명일 때까지의 멤버를 구성하는 경우의 수를 조합을 활용해서 구하고 각 경우의 수에서 스타트 팀으로 선택받지 못한 멤버는 모두 …

[백준 15686] 치킨 배달

문제 https://www.acmicpc.net/problem/15686 풀이과정 문제를 처음 봤을 때 도시 전체에 치킨집을 m개만 놓아야 하므로 조합을 이용한 경우의 수를 따져보아야 한다는 생각은 들었으나 조합을 직접 소스코드로 구현하려고 했을 때 어려움을 겪어서 순열이나 조합에 대한 구현 방법을 다시 정리하고 풀었던 문제이다. 아이디어 도시 전체에서 …