본문 바로가기
반응형

All Posts131

[백준 9084] 냅색 알고리즘(DP) - 파이썬 Python 동전 성공 문제 우리나라 화폐단위, 특히 동전에는 1원, 5원, 10원, 50원, 100원, 500원이 있다. 이 동전들로는 정수의 금액을 만들 수 있으며 그 방법도 여러 가지가 있을 수 있다. 예를 들어, 30원을 만들기 위해서는 1원짜리 30개 또는 10원짜리 2개와 5원짜리 2개 등의 방법이 가능하다. 동전의 종류가 주어질 때에 주어진 금액을 만드는 모든 방법을 세는 프로그램을 작성하시오. 입력 입력의 첫 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 10)가 주어진다. 각 테스트 케이스의 첫 번째 줄에는 동전의 가지 수 N(1 ≤ N ≤ 20)이 주어지고 두 번째 줄에는 N가지 동전의 각 금액이 오름차순으로 정렬되어 주어진다. 각 금액은 정수로서 1원부터 10000원까지 있을 수 있으며 공백으로 .. 2022. 12. 30.
[백준 12865] 냅색 알고리즘(DP) - 파이썬 Python 평범한 배낭 문제 이 문제는 아주 평범한 배낭에 관한 문제이다. 한 달 후면 국가의 부름을 받게 되는 준서는 여행을 가려고 한다. 세상과의 단절을 슬퍼하며 최대한 즐기기 위한 여행이기 때문에, 가지고 다닐 배낭 또한 최대한 가치 있게 싸려고 한다. 준서가 여행에 필요하다고 생각하는 N개의 물건이 있다. 각 물건은 무게 W와 가치 V를 가지는데, 해당 물건을 배낭에 넣어서 가면 준서가 V만큼 즐길 수 있다. 아직 행군을 해본 적이 없는 준서는 최대 K만큼의 무게만을 넣을 수 있는 배낭만 들고 다닐 수 있다. 준서가 최대한 즐거운 여행을 하기 위해 배낭에 넣을 수 있는 물건들의 가치의 최댓값을 알려주자. 입력 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100.. 2022. 12. 18.
[Express] Passport 모듈로 로그인 구현하기(2) - 카카오 로그인 구현하기 passport 모듈 sns등 서비스에 로그인을 구현할때, 회원가입과 로그인을 직접 구현할수도 있지만, 세션이랑 쿠키처리 등 복잡한 과정들이 있습니다. 이 모듈을 사용해서 더 간단하게 구현 할 수 있습니다. 아래에서 passport 모듈을 알고오시면 이해가 더 빠릅니다. 아래 프로젝트에서 이어서 하는 것입니다. passport 모듈을 연결하는 법은 아래에 있고, 이 포스트에선 passport-kakao 모듈과, 추가해줘야되는 코드만 다루고 있습니다. https://konkukcodekat.tistory.com/entry/Express-Passport-%EB%AA%A8%EB%93%88%EB%A1%9C-%EB%A1%9C%EA%B7%B8%EC%9D%B8-%EA%B5%AC%ED%98%84%ED%95%98%EA%.. 2022. 11. 11.
[Express] Passport 모듈로 로그인 구현하기(1) - local passport 모듈 sns등 서비스에 로그인을 구현할때, 회원가입과 로그인을 직접 구현할수도 있지만, 세션이랑 쿠키처리 등 복잡한 과정들이 있습니다. 이 모듈을 사용해서 더 간단하게 구현 할 수 있습니다. 패키지 설치 npm i passport passport-local bcrypt // 아래는 카카오 로그인 모듈 설치 (이번 실습때는 이용 X) npm i passport-kakao passport 모듈과 로컬(자체)로그인 모듈인 passport-local , 암호화 모듈인 bcrypt 모듈을 다운받았습니다. 데이터베이스에 비밀번호 그대로 저장하면 보안이 취약하기 때문에 사용자가 입력한 비번을 해시암호화해서 저장하고, 나중에 로그인할때, 입력한 비번을 똑같은 원리로 암호화해서 입력한 비번이랑 데이터베이.. 2022. 11. 11.
[Express] Sequelize로 MySQL 연결하기 (2) - CRUD 작업 Sequelize 라이브러리 시퀄라이즈는 ORM의 한 종류입니다. ORM은 객체와 데이터베이스의 릴레이션(명령어)를 매핑해주는 도구입니다. 쉽게 말해서 자바스크립트 객체를 ORM함수로 입력하면 ORM이 MySQL 명령어로 변역해서 실행해주는 것입니다. 꼭 mysql뿐만 아니라 다른 데이터베이스 언어와도 전부 호환 됩니다. npm으로 설치 sequelize-cli는 (comand line interface)로 시퀄라이즈 명령어를 터미널로 실행하기 위한 패키지이고, mysql2는 MySQL과 ORM을 연결해주는 드라이버입니다. mysql2이랑 MySQL이랑 헷갈리면 안됩니다. 별도로 설치해야합니다. npm i express sequelize sequelize-cli mysql2 Sequelize 초기화 아래.. 2022. 11. 8.
[Express] Sequelize로 MySQL 연결하기 (1) - 테이블 생성하기 Sequelize 라이브러리 시퀄라이즈는 ORM의 한 종류입니다. ORM은 객체와 데이터베이스의 릴레이션(명령어)를 매핑해주는 도구입니다. 쉽게 말해서 자바스크립트 객체를 ORM함수로 입력하면 ORM이 MySQL 명령어로 변역해서 실행해주는 것입니다. 꼭 mysql뿐만 아니라 다른 데이터베이스 언어와도 전부 호환 됩니다. npm으로 설치 sequelize-cli는 (comand line interface)로 시퀄라이즈 명령어를 터미널로 실행하기 위한 패키지이고, mysql2는 MySQL과 ORM을 연결해주는 드라이버입니다. mysql2이랑 MySQL이랑 헷갈리면 안됩니다. 별도로 설치해야합니다. npm i express sequelize sequelize-cli mysql2 Sequelize 초기화 아래.. 2022. 11. 6.
[Express] multer를 이용해서 백엔드 이미지 업로드 multer 미들웨어 multer는 이미지 동영상등 여러가지 파일들을 멀티파트 형식으로 업로드 할때 사용하는 미들웨어 입니다. 멀티파트 형식이란것은 enctype속성(인코딩)이 multipart/form-data인 형식을 말합니다. enctype의 속성에는 아래와 같은 종류가 있습니다. application/x-www-form-urlencoded 기본값으로, 모든 문자들은 서버로 보내기 전에 인코딩됨을 명시함. multipart/form-data 모든 문자를 인코딩하지 않음을 명시함. 이 방식은 요소가 파일이나 이미지를 서버로 전송할 때 주로 사용함. text/plain 공백 문자(space)는 "+" 기호로 변환하지만, 나머지 문자는 모두 인코딩되지 않음을 명시함. npm으로 설치하기 해당폴더의 터미널.. 2022. 11. 6.