반응형 All Posts174 파이썬 (Python) - 벨만-포드(Bellman-Ford) 개념과 예제 (백준 11657) 벨만 포드 알고리즘 많이 알려져있는 다익스트라가 (시간 복잡도 O(ElogV)) 최단거리 구하는 알고리즘이라면, 벨만-포드 알고리즘(시간 복잡도 O(VE))은 다익스트라 보단 조금 느리지만, 음수엣지가 있어도 수행할수 있는 알고리즘입니다. 음수 엣지가 있는 그래프 탐색에선 '음수 사이클'이 생기는데, 그 음수 사이클을 판별하는 용도로도 쓸수 있습니다. 음수 사이클 같은 경우는 위 그래프의 2,4,5 노드의 사이클이라고 보시면 됩니다. 한 바퀴 돌때마다 -1씩 감소하므로, 최단거리가 음의 무한대로 발산할 수 있기 때문에 이 경우는 최단거리가 없는 경우입니다. 음의 엣지가 있는 그래프에서는 최단 거리를 구할 땐 음수 사이클이 없는지 확인하고 출력해야합니다 1. 등록된 모든 엣지를 가지고 엣지리스트와 각 노드.. 2022. 12. 31. [백준 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. 이전 1 ··· 9 10 11 12 13 14 15 ··· 25 다음