본문 바로가기

코딩공부66

백준 1003번 문제 (다이나믹 프로그래밍) python 이중 배열 요즘 다이나믹 프로그래밍 완벽 숙지를 위해 매일 하나씩 풀고 있습니다. 백준 1003번 문제는 이중 배열을 이용하여 풀었는데요. 이중 배열을 대입 연산자를 이용하여 변경할 때 꼭 알아야 하는 내용이 있어 같이 들고 왔습니다. 문제 1003번 https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 피보나치수열의 응용문제인데 당연히 다이나믹 프로그래밍으로 해결이 가능하다. 문제를 보면 fibonacci(1), fibonacci(0) 일 때 각각 1과 0을 리턴한다. 그렇다면 fibonacci(2) 일 때는 fibonacci(1) + fibonacci(.. 2022. 11. 2.
백준 9095번 다이나믹 프로그래밍 -python 다이나믹 프로그래밍 문제 중 재미있게 풀었던 것을 가져왔다. 문제 9095 https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net 풀이 다이나믹 프로그래밍이 하위 문제로 상위 문제를 풀 수 있는 기법이기 때문에 제일 작은 수들을 이용하여 그다음 큰 수를 계산할 수 있을 경우를 찾아본다. 1, 2, 3, 4 케이스를 적어보고 1, 2, 3을 이용하여 4를 만드는 방법을 생각하면 풀 수 있다. 점화식은 A(n) = A(n - 1) + A(n - 2) + A(n - 3) 테스트 케이스에 4가 들어왔다고 생각하면 A(4) = A(3) + A(2) + A(1.. 2022. 11. 1.
다이나믹 프로그래밍(동적 계획법) ex)백준 2839번 -python 다이나믹 프로그래밍 dynamic programming, DP 복잡한 문제를 간단한 여러 개의 문제로 나누어 푸는 방법을 말한다. 부분 문제 반복과 최적 부분 구조를 가지고 있는 알고리즘에 유리 주어진 문제를 풀기 위해서, 문제를 여러 개의 하위 문제로 나누어 푼 다음, 그것을 결합하여 최종적인 문제가 나왔을 경우 그것을 간단하게 해결할 수 있다. 예로 피보나치 수열, 점화식, 최단 경로 문제, 행렬의 제곱 문제 등 최적화에 사용 이미 계산한 결과를 별도의 메모리에 저장하여 다시 계산하지 않아 수행시간 효율이 좋다. ex) 피보나치 function fib(n): if n = 0: return 0 elif n = 1: return 1 else: return fib(n - 1) + fib(n - 2) 재귀함.. 2022. 10. 28.
뉴스에서 나온 인공지능 그림 사이트 및 조작법 뉴스에서 나온 디스코드 인공지능 그림 그리기 https://www.midjourney.com/home/ Midjourney An independent research lab exploring new mediums of thought and expanding the imaginative powers of the human species. www.midjourney.com 들어가면 여기서 Join the beta 들어가면 닉네임치는 곳에 이름치고 생년월일만 입력하고 이메일 입력창은 닫아주면 계정없이도 들어가진다. 계정마다 갯수 제한이 있다고 해서 이렇게 해주는게 편할 것 같다. newbies-144에 들어가서 직접해보았다. 채팅창에 /imagine을 치고 prompt 칸에 키워드를 넣으면 된다. 나는 초록산.. 2022. 10. 20.
Step 3. ejs 파일 완성 1. ejs 파일 만들기 ejs 뷰 엔진을 이용할 예정이다. views 파일 안에 todo.ejs, todo-edit.ejs 파일을 만들어준다.(error.ejs도 대충 코드 넣어서 만들어놔야 오류가 안난다.) 구글링을 참조해서 만들었다. views/todo.ejs TODO LIST Write { date = (tasks.date).substring(0, 10); if(date != next_date){ next_date = date; %> views/todo-edit.ejs TODO LIST Write { date = (tasks.date).substring(0, 10); if(date != next_date){ next_date = date; %> 꾸미고 싶다면 bootstrap 을 이용하여 예쁘게 .. 2022. 10. 3.
Step 2. MongoDB 연결 및 기본 코드 변경 1. mongoDB를 연결시켜주기 mongoDB 계정과 npm install mongoose 를 해주었으면 app.js 에 연결시켜준다. app.js const mongoose = require("mongoose"); mongoose.connect(process.env.DB_CONNECT, {useNewUrlParser: true, useUnifiedTopology: true}, function(err){ if(err){ console.error("DB 오류", err); } console.log("DB 성공"); }) process.env.DB_CONNECT 부분은 npm install dotenv -> .env 파일 생성 .env 파일 DB_CONNECT = mongodb+srv://test:여기에 .. 2022. 10. 3.