티스토리 뷰
반응형
// 1.
const fs = require('fs');
const input = parseInt(fs.readFileSync('/dev/stdin').toString().trim());
// 2.
function* multi() {
let result = 1, idx = 1, mul = 1;
while (true) {
result += mul;
yield result;
mul = idx * 6;
idx++;
}
}
// 3.
let result = 0;
switch (input) {
case 0:
result = 0;
break;
case 1:
result = 1;
break;
default:
let gen = multi();
for(let i = 1;i<=input;i++) {
let val = gen.next().value;
if(val > input) {
result = i;
break;
}
}
break;
}
console.log(result);
- input을 초기화한다.
- 2 - 8 - 20 - 38 - 62와 같이, 벌집의 각 계층 시작점을 반환하는 제너레이터 함수를 작성한다.
- 2.의 제너레이터 함수는 input이 0, 1인 경우에 대응할 수 없으므로 switch문을 통해 이를 걸러낸다.
- 그 외의 경우는 제너레이터 함수를 초기화한 후 이를 사용한다.
- 변수 val은 제너레이터 함수의 next()메소드를 통해 반환된 각 계층의 시작점이다.
- 해당 계층의 시작점보다 input이 작은 경우, input 위치는 비교 대상의 이전 계층에 있다고 가정한다.
- 결과는 해당 시점의 index 값이므로 이를 반환한 후 답을 출력한다.
결과
9436 KB / 184 ms
메모
- 제너레이터 함수를 쓸 필요는 전혀 없다. 단순 반복문을 사용하는 것이 더 좋을 것임.
- 근데 그냥 제너레이터 써보고 싶었다.
'Dev. > coding test' 카테고리의 다른 글
[BaekJoon] 1018 체스판 다시 칠하기 (node.js) (0) | 2021.07.09 |
---|---|
[BaekJoon] 1620 나는야 포켓몬 마스터 이다솜 (node.js) (0) | 2021.07.08 |
[BaekJoon] 15829 Hashing (node.js) (0) | 2021.07.05 |
[BaekJoon] 2869 달팽이는 올라가고 싶다 (node.js) (0) | 2021.07.05 |
[BaekJoon] 10815 숫자 카드 (node.js) (0) | 2021.06.30 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- kotlin
- AWS
- JEST
- etc
- IntelliJ
- 코딩테스트
- javascript
- shell
- spring boot
- Java
- react
- Docker
- Git
- Gradle
- hashicorp
- dev
- Puppeteer
- terraform
- Spring Cloud Config
- mysql
- Linux
- Node.js
- postgresql
- eureka
- jQuery
- Database
- pgloader
- JPA
- Vault
- AWS IoT
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함