Dynamic Programming (동적 계획법)
·
Algorithm
1. Dynamic Programming이란?Dynamic Programming, 줄여서 DP (동적계획법)은 기본적인 아이디어로 하나의 큰 문제를 여러 개의 작은 문제로 나누어서 그 결과를 저장하여 다시 큰 문제를 해결할 때 사용하는 것으로, 알고리즘 설계 기법이다. 알고리즘 기법문제를 해결하기 위해 사용되는 절차적인 방법정렬 알고리즘, 검색 알고리즘, 그래프 탐색 알괼즘알고리즘 설계 기법문제 해결을 위해 알고리즘을 설계하는 방법이나 접근 방식분할 정복, 동적 계획법, 탐욕적 알고리즘, 백트래킹2.  DP 사용 조건1) Overlapping Subproblems (겹치는 부분 문제)DP는 기본적으로 문제를 나누고 그 문제의 결과 값을 재활용해서 전체 답을 구하기 때문에, 동일한 작은 문제들이 반복하여 ..
[백준] 24060 알고리즘 수업 - 병합 정렬 1_자바스크립트
·
Algorithm
문제https://www.acmicpc.net/problem/24060 풀이방법재귀 + 병합정렬'자료구조론' 시간 때 배운 병합정렬의 방식대로 코드를 짜봤다. 첫번째 시도: 실패let fs = require("fs");let input = fs.readFileSync("/dev/stdin").toString().split("\n");const [N, K] = input[0].split(" ").map((n) => parseInt(n));const A = input[1].split(" ").map((n) => parseInt(n));let count = 0;let t = 0;function merge_sort(Arr) { if (Arr.length > 1; let left = Arr.slice(0, m..
[백준] 21921 블로그 javascript
·
Algorithm
문제https://www.acmicpc.net/problem/21921 풀이방법슬라이딩 윈도우 + 투포인터  첫번째 시도: 실패let fs = require("fs");let input = fs.readFileSync("/dev/stdin").toString().split("\n");let [N, X] = input[0].split(" ").map((n) => parseInt(n));let arr = input[1].split(" ").map((n) => parseInt(n));let total = 0;for (let i = 0; i 틀린 원인기간의 갯수를 확인할 때 무조건 기존 값이랑 최종값이 같다면 기간에 1을 더하게끔 했다. 두번째 시도: 실패let fs = require("fs");let inpu..
[백준] node.js 입력받기
·
Algorithm
fs 모듈 사용하기 (백준 제출용)1) input이 한 줄일 경우//한 줄 입력let fs = require('fs');let input = fs.readFileSync('/dev/stdin').toString().split(' ');2) input이 여러 줄일 경우//여러 줄 입력let fs = require('fs');let input = fs.readFileSync('/dev/stdin').toString().split('\n');// 예시let count = input[0];let numbers = [1]; fs모듈 사용하기 (vscode에서 테스트할때)1) fs 모듈 설치터미널을 열고 아래의 명령어 입력npm install fs 2) 같은 디렉토리에 input.txt 파일 생성 후, txt파일에..
[백준] 2559 수열 javascript
·
Algorithm
문제https://www.acmicpc.net/problem/2559문제매일 아침 9시에 학교에서 측정한 온도가 어떤 정수의 수열로 주어졌을 때, 연속적인 며칠 동안의 온도의 합이 가장 큰 값을 알아보고자 한다.예를 들어, 아래와 같이 10일 간의 온도가 주어졌을 때, 3 -2 -4 -9 0 3 7 13 8 -3모든 연속적인 이틀간의 온도의 합은 아래와 같다.이때, 온도의 합이 가장 큰 값은 21이다. 또 다른 예로 위와 같은 온도가 주어졌을 때, 모든 연속적인 5일 간의 온도의 합은 아래와 같으며, 이때, 온도의 합이 가장 큰 값은 31이다.매일 측정한 온도가 정수의 수열로 주어졌을 때, 연속적인 며칠 동안의 온도의 합이 가장 큰 값을 계산하는 프로그램을 작성하시오. 입력첫째 줄에는 두 개의 정수 N과..