post-thumbnail

프로그래머스 양궁대회

풀이 냅색 알고리즘을 이용해 해결했다. 화살의 개수 = 무게 과녁의 점수 = 가치 에 대입해보면 냅색 알고리즘을 적용할 수 있다. 하지만, 주의할점은 이미 피치가 맞춘 과녁의 점수는 점수의 가치가 두배라는 점이다. (피치는 얻을 점수를 얻지 못하고 라이언이 그 만큼의 점수를 얻기 때문) 또, 냅색에 경로 추적까지 필요하다. 최종 점수가 어떤 과녁을 맞...

2022년 8월 2일
·
0개의 댓글
·
post-thumbnail

프로그래머스 불량사용자

문제 풀이 크게 두 가지 작업으로 나뉜다. 정규식을 통한 문자열 체크 백트래킹을 통한 유저아이디와 차단아이디의 매칭 나누어서 살펴보면 먼저 차단당한 아이디들의 * 문자를 . 문자로 바꾸고 ^와 $를 앞뒤에 붙여줌으로써 정규식에 사용하기 편한 형태로 바꿔준다. 그 후 백트래킹 과정에서 match를 통해 사용자의 아이디와 차단당한 아이디

2022년 7월 31일
·
0개의 댓글
·
post-thumbnail

백준 스타트와 링크

풀이 크게 두 가지 작업으로 나뉜다. 백트래킹을 이용한 팀 나누기 나눠진 팀에 대해 각각 포인트 계산 및 반환 백트래킹 알고리즘에 대해 이해하고 있다면 큰 어려움 없이 해결할 수 있는 문제이다. 소스코드 후기 team2 의 멤버를 구하기 위해 사용한 indexOf의 시간복잡도가 O(N) 인데 모든 멤버에 대해 사용하므로 최악의 경우 대략 20*20 ...

2022년 7월 27일
·
0개의 댓글
·
post-thumbnail

백준 2141 우체국

https://www.acmicpc.net/submit/2141/42113933정렬+그리디마을에 대해서가 아니라 각 마을에 존재하는 사람들에 대해 우체국이 최적의 위치에 있어야 한다는 점을 유의하자. 따라서 마을마다 가중치가 서로 다르다.최적의 우체국 거리는

2022년 4월 21일
·
0개의 댓글
·

반복문 안에서 데이터 베이스에 접근하는 경우

1. Promise.all Promise.all() 메서드는 순회 가능한 객체에 주어진 모든 프로미스가 이행한 후, 혹은 프로미스가 주어지지 않았을 때 이행하는 Promise를 반환한다. 주어진 프로미스 중 하나가 거부하는 경우, 첫 번째로 거절한 프로미스의 이유를 사용해 자신도 거부한다. 2. 실전 적용 Promise.all 이 압도적으로 우세한 성능...

2022년 4월 5일
·
0개의 댓글
·
post-thumbnail

이미지 리사이징

0. 사전 준비 1) IAM 사용자 권한 설정 AWS Lambda 서비스를 사용하기 위해 해당 사용자에게 Lambda 권한을 주어야 한다. 사용자 -> 권한추가 -> AWSLambdaFullAccess 를 추가해야 한다. 사진 업로드도 해야 하므로 S3FullAc

2022년 3월 26일
·
0개의 댓글
·

Nginx + https

Nginx + https 적용해보기 1. Nginx 설치 2. nginx 서버 블록 설정 nginx 설정 파일 수정 http {} 블록 끝에 구문 추가 include /etc/nginx/sites-enabled/*.conf; // sites-enabled 디렉

2022년 3월 22일
·
0개의 댓글
·

WIL 10주차

1. 실전프로젝트 3주차 실전 프로젝트 3주차가 마무리 되었다. 이번주에는 Jest 공부를 끝내고 테스트 코드를 본격적으로 작성했다. 32개의 API 에 대해 성공하는 케이스만 작성했는데도 천줄이 훌쩍 넘는 분량이 나왔다.. 실패 케이스에 대한 부분도 작성하고 싶지만

2022년 3월 22일
·
0개의 댓글
·

jest spyOn

jest.spyOn() mocking에는 스파이(spy)라는 개념이 있다. 현실이나 영화 속에서 스파이라는 직업은 “몰래” 정보를 캐내야 한다. 테스트를 작성할 때도 이처럼, 어떤 객체에 속한 함수의 구현을 가짜로 대체하지 않고, 해당 함수의 호출 여부와 어떻게 호출되었는지만을 알아내야 할 때가 있다. 이럴 때, Jest에서 제공하는 jest.spyOn(o...

2022년 3월 13일
·
0개의 댓글
·
post-thumbnail

카카오 로그인

인가코드 요청 URL에 CLIENTID 와 REDIRECTURL을 담아서 카카오 로그인 페이지로 이동함 (1번 그림) 카카오 로그인 성공시 담겨진 REDIRECT_URI로 인가코드가 반환됨 (2번 그림) 프론트에서는 RECIRECTURI로 이동되면서 useEf

2022년 3월 12일
·
0개의 댓글
·

WIL 9주차

1. 중복되는 코드에 대한 모듈 분리 ref) https://velog.io/@shin6403/NodeJs-requireexportsmodule.exports-Part.2 2.lean mongoose Document는 아래와 같은 추가 정보를 포함한다. > Ch

2022년 3월 7일
·
0개의 댓글
·

프로그래머스 방금그곡

replace에서 변경 직전의 값에 대해 접근하는 방법에 대해 새롭게 배웠다. ref)https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/replace

2022년 3월 6일
·
0개의 댓글
·

Mongodb $match

ex1) ex2) ref) https://docs.mongodb.com/manual/reference/operator/aggregation/match/ +) 또 다른 검색 방법 : $regex 이용 ref) https://docs.mongodb.com/manua

2022년 3월 6일
·
0개의 댓글
·

Mongodb $sample (aggregation)

$sample (aggregation) 컬렉션 내에서 $sample - size 개수만큼 랜덤하게 가져오기 ref) https://docs.mongodb.com/manual/reference/operator/aggregation/sample/

2022년 3월 5일
·
0개의 댓글
·

WIL 8주차

BIGINT 자바스크립트 2^53-1을 초과하는 숫자는 bigint로 표현 가능 ex) lean() 우리가 사용하는 Mongoose 쿼리는 Mongoose Document를 반환한다. lena()은 Mongoose Document가 아니라 바로 Javascript O

2022년 3월 3일
·
0개의 댓글
·

Object.entries, Object.values

Object.entries Object.entries() 메서드는 주어진 객체 자체의 enumerable 속성 [key, value] 쌍의 배열을 반환한다. Object.values Object.values() 메소드는 전달된 파라미터 객체가 가지는 속성의 값들로

2022년 2월 27일
·
0개의 댓글
·

호이스팅

자바스크립트 엔진은 코드의 라인 순서와 관계없이 함수 선언식과 변수를 위한 메모리 공간을 먼저 확보한다. (선언문 해석=>변수초기화=>코드실행 순) 따라서 함수와 변수(var)는 코드의 최상단으로 끌어 올려진 것(hoisted)처럼 보이게 되는데 이를 호이스팅이라고 한다. 다만 var 변수는 선언과 동시에 초기화가 되기 때문에 참조가 가능하지만 let,...

2022년 2월 23일
·
0개의 댓글
·
post-thumbnail

WIL 7주차

Mongoose query 정규식+populate 이용한 필터링https://mongoosejs.com/docs/api/query.html

2022년 2월 21일
·
0개의 댓글
·

WIL 6주차

1. 미니 프로젝트 (2.14~2.17) 기본 기능 구현을 끝내고 프론트엔드 조원들과 소통하며 추가 기능에 대한 api를 구현했다. 전체적으로 프론트 엔드보다 백엔드 작업이 일찍 끝나 나머지 시간에는 개인 공부 및 코드 리팩토링을 하거나 prettier, eslint

2022년 2월 20일
·
0개의 댓글
·

TIL

populate 하나의 다큐먼트가 다른 다큐먼트의 ObjectId를 쓰는 경우가 있다. 그럴 때 그 ObjectId를 실제 객체로 치환하는 작업이 필요하다. 그 때 유용한게 mongoose의 populate기능이다. 아래 예시를 보자 1. 먼저 populate를 적용

2022년 2월 19일
·
0개의 댓글
·