알고리즘/백준
[JS] 11653번 소인수분해
문제 https://www.acmicpc.net/problem/11653 11653번: 소인수분해 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. www.acmicpc.net 문제 해결 const input = parseInt(require("fs").readFileSync("/dev/stdin").toString().trim()); // 최대 공약수 function GCD(input) { let idx = 2; while (input > 1) { if (input % idx === 0) { console.log(idx); input /= idx; } else { idx ++; } } } GCD(input);
[JS] 11720번 숫자의 합
문제 https://www.acmicpc.net/problem/11720 11720번: 숫자의 합 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. www.acmicpc.net 문제 해결 const input = require('fs').readFileSync('/dev/stdin').toString().split('\n'); const count = parseInt(input[0]); function solution() { const data = input[1].split(""); let result = 0; for(let i=0;i
[DP] 21317번 : 징검다리 건너기
문제 https://www.acmicpc.net/problem/21317 21317번: 징검다리 건너기 산삼을 얻기 위해 필요한 영재의 최소 에너지를 출력한다. www.acmicpc.net 해결 방법 처음에 고려했던 방법은 작은 점프, 큰 점프, 매우 큰 점프를 한번에 규칙을 찾아 해결해 보려고 했던점이다. 하지만 이렇게 된다면 매우 큰 점프에 대해 고려할 점이 상당히 많아지기에 적합한 풀이 방법이 아니라는 것을 알게 되었다. 따라서, (1) 작은 점프 + 큰 점프를 할 경우와 (2) 작은 점프 + 큰 점프 + 매우 큰 점프 이렇게 2가지를 순차적으로 진행하여 해당 문제를 수행할 수 있다. 여기서 중요한 점은 (1)의 결과는 (2)에서 사용되기 때문에 (1) 에서 선언된 DP의 값은 변화하면 안되는 점이..
[DP] 12865번 : 평범한 배낭
문제 N(2 ≤ N ≤ 10,000)개의 돌들이 같은 간격으로 놓여 있다. 편의상 순서대로 1, 2, …, N번 돌이라고 부르자. 당신은 현재 1번 돌 위에 있는데, 이 돌들 사이에서 점프를 하면서 N번째 돌로 이동을 하려 한다. 이때 다음 조건들이 만족되어야 한다. 이동은 앞으로만 할 수 있다. 즉, 돌 번호가 증가하는 순서대로만 할 수 있다. 제일 처음에 점프를 할 때에는 한 칸밖에 점프하지 못한다. 즉, 1번 돌에서 2번 돌이 있는 곳으로 점프할 수 있다. 그 다음부터는 가속/감속 점프를 할 수 있는데, 이전에 x칸 점프를 했다면, 다음번에는 속도를 줄여 x-1칸 점프하거나, x칸 점프하거나, 속도를 붙여 x+1칸 점프를 할 수 있다. 물론 점프를 할 때에는 한 칸 이상씩 해야 한다. 각 돌들은 각..