백준 알고리즘(16)
-
[백준 알고리즘] Node.js 1149. RGB거리
1. 문제 https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 2. 풀이 1) 이전에 사용했던 색상을 사용할 수 없다. 2) 이전 색상을 제외한 값을 더하면서 진행한다 - DP 이용! 3) 색상은 빨강, 초록, 파랑 3가지의 색상 중 하나를 사용한다. const inputs = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n'); const n = +i..
2023.06.01 -
[백준 알고리즘] Node.js 20920. 영단어 암기는 괴로워
1. 문제 https://www.acmicpc.net/problem/20920 20920번: 영단어 암기는 괴로워 첫째 줄에는 영어 지문에 나오는 단어의 개수 $N$과 외울 단어의 길이 기준이 되는 $M$이 공백으로 구분되어 주어진다. ($1 \leq N \leq 100\,000$, $1 \leq M \leq 10$) 둘째 줄부터 $N+1$번째 줄까지 외울 단 www.acmicpc.net 2. 풀이 const inputs = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n'); const [n,m] = inputs.shift().split(' ').map(Number); let words = new Map(); for(let i ..
2023.05.18 -
[백준 알고리즘] Node.js 14215. 세 막대
1. 문제 https://www.acmicpc.net/problem/14215 14215번: 세 막대 첫째 줄에 a, b, c (1 ≤ a, b, c ≤ 100)가 주어진다. www.acmicpc.net 2. 풀이 - 세 막대를 이용하여 가장 큰 삼각형의 둘레를 구하는 문제이다. 세 변의 길이를 이용하여 삼각형을 만들 수 있는 조건은 ' 가장 긴 변의 길이가 나머지 두 변의 길이의 합보다 작아야한다. ' 를 이용하면 된다. const [a,b,c] = require('fs').readFileSync('/dev/stdin').toString() .trim().split(' ').map(Number).sort((a,b) => a-b); console.log(`${a+b+Math.min(c, a+b-1)}`)..
2023.05.13 -
[백준 알고리즘] Node.js 1380. 귀걸이
1. 문제 https://www.acmicpc.net/problem/1380 1380번: 귀걸이 입력은 번호를 가진 시나리오들로 구성됩니다. 시나리오 번호는 1부터 순서대로 증가하고, 각 시나리오는 아래의 내용을 포함합니다. 한 줄에 귀걸이를 압수당한 여학생의 수, n (1 ≤ n ≤ 100)이 www.acmicpc.net 2. 풀이 - 여러개의 테스트 케이스가 있는 경우이다. - 테스트 케이스의 첫번째 줄 학생의 수 n, 다음 n 줄에 걸쳐서 학생의 이름, 2n-1줄 만큼 뺏고 돌려준 자료가 나온다. const inputs = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n'); let result = ""; let line =..
2023.03.30 -
[백준 알고리즘] Node.js 1340. 연도 진행바
1. 문제 https://www.acmicpc.net/problem/1340 1340번: 연도 진행바 평년일 때, 각 달은 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31일이 있다. 윤년에는 2월이 29일이다. 윤년은 그 해가 400으로 나누어 떨어지는 해 이거나, 4로 나누어 떨어지면서, 100으로 나누어 떨어지지 www.acmicpc.net 2. 풀이 - 1년을 100%로 잡고 입력받은 날짜와 그 해의 1월 1일 00시 00분 빼는 생각으로 진행. - 1년의 기준은 입력받은 연도의 1월 1일 00시 00분 부터 다음 연도 1월 1일 00시 00분까지로 생각. const inputs = require('fs').readFileSync('/dev/stdin').toSt..
2023.03.29