백준2292 - 벌집 JS 본문
반응형
https://www.acmicpc.net/problem/2292
해당 문제는 반복문을 통해 문제를 해결하려고 하면 시간 초과가 나게 되므로 규칙성을 찾아 해결해야 한다.
중심을 시작으로 각 거리마다 가장 큰 값이 [1, 7, 19, 37, 61]인 것을 보아,
6n[6, 12, 18, 24...]씩 증가하고 있음을 확인할 수 있으므로 이를 활용해 문제를 해결하면 된다.
const fs = require('fs')
const input = fs.readFileSync(process.platform === "linux" ? "/dev/stdin":"입력.txt")
.toString().trim()
function solution(data) {
// sum 의 초깃값이 1인 이유는, 벌집 가장 가운데 있는 값이 1이기 때문
let [distance, sum] = [1,1]
// sum >= data 를 만족할 때까지
// distance를 증가시키며 누산해주면 된다
while(sum < data) {
sum += 6 * distance++
}
console.log(distance)
}
solution(input)
반응형
'개발 > algorithm' 카테고리의 다른 글
백준14501 - 퇴사(DP) JS (0) | 2023.09.25 |
---|---|
백준1158 - 요세푸스 문제 (queue) JS (0) | 2023.09.24 |
백준9324 - 진짜메시지 JS (0) | 2023.09.22 |
백준1063 - 킹 JS (1) | 2023.09.21 |
백준3107 - IPv6 JS (0) | 2023.09.20 |
Comments