문제 : https://www.acmicpc.net/problem/2292
2292번: 벌집
위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌
www.acmicpc.net
Sol )
- 중앙 1에서부터 cnt가 시작되기 때문에 초기값 1
- 처음 육각형 (2~7)과 다음 육각형 (8~19)의 크기 차이는 6.
- 최초 육각형 까지의 거리 = 6
- n이 1보다 클 동안 반복하면서 다음 껍질로 이동한다. 이동 1회에 움직일 수 있는 최대 범위(num = 초기값 = 6) 씩 n에서 빼기.
- 한 껍질 바깥으로 이동할 때마다 거리(num)는 6씩 증가, 이동 횟수(cnt)는 1씩 증가시킨다.
- n이 1보다 작다면 목표값까지 이동 가능한 횟수이기 때문에 그때의 cnt를 출력
소스코드 )
const fs = require('fs');
let n = parseInt(fs.readFileSync('/dev/stdin'));
let cnt = 1;
let num = 6;
while ( n > 1){
n -= num;
cnt++;
num += 6;
}
console.log(cnt)
'Problem Solving > boj.kr (JS)' 카테고리의 다른 글
[BOJ / 자바스크립트] 2869 달팽이는 올라가고 싶다 (0) | 2022.07.11 |
---|---|
[BOJ / 자바스크립트] 1193 : 분수찾기 (0) | 2022.07.11 |
[BOJ / 자바스크립트] 1712 : 손익분기점 (0) | 2022.03.12 |
[BOJ / 자바스크립트] 1316 : 그룹 단어 체커 (0) | 2022.02.26 |
[BOJ / 자바스크립트] 2941 : 크로아티아 알파벳 (0) | 2022.02.26 |
댓글