백준/두 포인터
-
백준 1253 nodejs백준/두 포인터 2023. 1. 20. 21:14
문제 https://www.acmicpc.net/problem/1253 1253번: 좋다 첫째 줄에는 수의 개수 N(1 ≤ N ≤ 2,000), 두 번째 줄에는 i번째 수를 나타내는 Ai가 N개 주어진다. (|Ai| ≤ 1,000,000,000, Ai는 정수) www.acmicpc.net 풀이 두 포인터를 이용해 각 수가 좋은 수인지 확인한다. 문제에서 의도된 풀이는 아니지만, 브루트포스로도 풀린다. 두 포인터 let [[N], I] = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n').map(e => e.split(' ').map(Number)) I.sort((a, b) => a - b) let o = 0 for (let i ..
-
백준 1450 nodejs백준/두 포인터 2023. 1. 5. 11:52
문제 https://www.acmicpc.net/problem/1450 풀이 재귀를 이용한다. F(n, c) = F(n - 1, c) + F(n - 1, c - I[n - 1] (새로 들어온 물건을 넣는 경우 + 넣지 않는 경우) 시간 초과를 피하기 위해 물건을 두 그룹으로 나누고 정렬하여 two-pointer를 사용한다. let [[N, C], I] = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n').map(e => e.split(' ').map(Number)) const [A, B] = [[], []] function F(I, O, n, c) { if (c < 0) return 0 if (n == 0) return O.pu..
-
백준 2473 nodejs백준/두 포인터 2022. 12. 23. 16:49
문제 https://www.acmicpc.net/problem/2473 2473번: 세 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 3 이상 5,000 이하의 정수이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -1,000,000,000 이상 www.acmicpc.net 풀이 용액 하나를 임의로 선택한 후, 나머지 두 용액과 혼합한 최솟값을 Two-pointer를 이용해 구한다. let [[N], A] = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n').map(e => e.split(' ').map(Number)) A.sort((a, b) => a - b) l..