Computer Science/Algorithm :: 알고리즘

알고리즘 :: 구름 - 근묵자흑 #JavaScript

HJPlumtree 2021. 10. 1. 17:48

알고리즘 공부하며 배운내용

 

 

구름 - 근묵자흑

신기하게도 숫자를 한 곳에 모아놓으니 근묵자흑처럼 작은 숫자로 변한다고 한다.

1부터 N까지 수열이 주어지고, 연속된 K개를 선택할 수 있다.

최소 몇 번을 해야 다 같은 1이 되겠는가 물어보는 문제

 

 

들어오는 값

첫 줄에 수열의 숫자 N, 연속해서 선택할 수 있는 K가 주어진다.

둘 째줄에 수열이 들어온다.

예)

4 3

2 3 1 4

 

 

구하고 싶은 값

최소 몇 번 선택을 해야되는지 출력

예)

2

 

 

생각

무슨 규칙이 있을 것 같아서 밑의 작업을 했다.

3 3 => 1

4 3 => 2

5 3 => 2

6 3 => 3

7 3 => 3

8 3 => 4

9 3 => 4

 

시간을 꽤 썼지만 찾았다.

이 시간이 다음엔 더 빨라지기를

 

밑에 수열은 전혀 필요없었다.

 

 

코드

// Run by Node.js

const readline = require("readline");
const rl = readline.createInterface({
	input: process.stdin,
	output: process.stdout
});
let input = []
rl.on("line", function(line) {
	if(!line) {
		rl.close()
	}
	else {
		input.push(line)
	}
}).on("close", function() {
	color(input)
	process.exit();
});

function color(input){
	let [a, b] = input[0].split(' ').map(Number)
	console.log(Math.ceil((a - b) / (b - 1)) + 1)
}