IT지식/개발
[구름레벨] 근묵자흑 PHP
7$
2020. 8. 17. 22:08
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++;
}
?>