답변 4개 / 댓글 3개
채택된 답변
+20 포인트
Copy
<?php
function count_of_continuous_element($arg, $withzero = true) {
$arr = [];
$before = current($arg);
$cnt = 0;
for ($i = 0, $i_cnt = count($arg); $i < $i_cnt; $i++) {
$v = $arg[$i];
if ($before == $v) {
$cnt++;
} else {
if ($withzero == false && $before == 0) {
$cnt = 0;
}
$arr[] = $cnt;
$cnt = 1;
}
$before = $v;
}
if ($withzero == false && $before == 0) {
$cnt = 0;
}
$arr[] = $cnt;
return $arr;
}
$arr = [1,1,1,1,0,1,1,0,1,1];
$val = count_of_continuous_element($arr);
/*
Array
(
[0] => 4
[1] => 1
[2] => 2
[3] => 1
[4] => 2
)
*/
$val = count_of_continuous_element($arr, false);
/*
Array
(
[0] => 4
[1] => 0
[2] => 2
[3] => 0
[4] => 2
)
*/
?>
Copy
function get_len($array, $index=0, &$result)
{
if($index >= count($array)) {
return;
}
$start = $array[$index];
$count = 0;
for($i=$index; $i<count($array); $i++) {
if($start == $array[$i]) {
$index++;
$count++;
} else {
//$index++;
break;
}
}
array_push($result, $count);
get_len($array, $index, $result);
}
// 사용방법
$arr = [1,1,1,1,0,1,1,0,1,1];
$len = [];
get_len($arr, 0, $len);
var_dump($len);
/*
[4,1,2,1,2]
*/
답변에 대한 댓글 3개
답변을 작성하려면 로그인이 필요합니다.