본문 바로가기
IT지식/개발

[구름레벨] 근묵자흑 PHP

by 7$ 2020. 8. 17.

1부터 N까지 중복되지 않도록 나열된 수열에서 연속된 K개의 수들을 모아 그 중 가장 작은 숫자로 K개의 숫자가 바뀌고, N개의 수열이 모두 같은 수가 될때 K개의 모음을 최소 몇 번 수행해야 하는가.

 

예시) N = 4, K = 3

 [1, 2, 3, 4] -> [1, 1, 1, 4]

 [1, 1, 1, 4] -> [1, 1, 1, 1]

결과 : 최소 2회 수행

<?php
	$input_nk = fgets(STDIN); //N과 K를 공백으로 구분하고 한 줄로 받음
	$input_arr = fgets(STDIN); //문제 입력 양식에 따라 값을 받긴 하지만 사용하진 않았음

	$nk = explode(' ', $input_nk);
	$n = $nk[0];
  	$k = $nk[1];

	$idx = 0; //수열의 인덱스 탐색
	$cnt = 0; //횟수
    
	while(1) {
		if ($idx >= $n-1) { //수열의 인덱스가 N-1이 될때까지
			return print($cnt);
		}
		$idx += $k - 1; //인덱스 탐색
		$cnt++;
	}
?>