exit('IN');

本を読んで得た学びとか

【CodeWars】11/8~11/14に解いた問題たち

記事の概要

僕が1週間に解いたCodeWarsのまとめです。
PHP 7.0を使用しています。

Form The Largest

レベル

7kyu

概要

与えられた数字の最も大きい組み合わせを返す。

書いたコード

ソート系の戻り値がbooleanではなく、ソート後の配列だったら一行で書けるのに。

function maxNumber($n) {
  $num_array = [];
  
  $num_array = str_split($n);
  rsort($num_array);
  return (int)implode('', $num_array);
}

Tidy Number (Special Numbers Series #9)

レベル

7kyu

概要

与えられた数字の並びが小→大になっているか調べる。

書いたコード

function tidyNumber($n) {
  $num_array = [];
  $sorted_num = 0;
  
  $num_array = str_split($n);
  sort($num_array);
  $sorted_num = implode('', $num_array);
  return $n == $sorted_num ? true : false;
}

Remove anchor from URL

レベル

7kyu

概要

与えられた文字列(URL)の#以下を除去して返す。

書いたコード

explodeやstrtokで解いている人もいた。

function replaceAll($string) {
  return preg_replace('/#\w*/', '', $string);
}

Row Weights

レベル

7kyu

概要

与えられた配列の数値を交互に別々の変数に足し合わせる。

書いたコード

function rowWeights($arr) {
  $row1 = 0;
  $row2 = 0;
  
  foreach ($arr as $key => $value) {
    $key % 2 == 0 ? $row1+= $value : $row2+= $value;
  }
  return [$row1, $row2];
}

Get the mean of an array

レベル

8kyu

概要

配列の要素の平均値を少数切り捨てで返却する。

書いたコード

function get_average($a) {
  return floor(array_sum($a)/count($a));
}

Maximum Product

レベル

7kyu

概要

配列の隣接する要素同士の掛け算の結果が最も大きいものを返却する。

書いたコード

function adjacentElementsProduct($array) {
  for  ($i = 0; $i < count($array) -1; $i++) {
    if ($max < $array[$i] * $array[$i + 1]) {
      $max = $array[$i] * $array[$i + 1];
    }
  }
  return $max;
}

Is n divisible by x and y?

レベル

8kyu

概要

nをxとyで割り切れるかどうかを調べる。

書いたコード

// return $n % $x == 0 && $n % $y == 0 ? true : false;

if ($n % $x == 0 && $n % $y == 0) {return true;}
  return false;