Strona główna » Studia i nauka, Techblog, Webdesign » CodeCup.pl - zadanie 17

CodeCup.pl - zadanie 17

10 kwietnia 2008, 20:34:45

Prezentuję kolejne moje kodziwo z serii rozwiązań zadań publikowanych w serwisie CodeCup.pl. Treść zadania to "Napisać funkcję, która obliczy współrzędną kuli po przetoczeniu przez daną liczbę poziomów i zapadni" (pełna treść zadania). Tym razem zadanie było prościutkie, udało mi się je rozwiązać w kilkanaście minut, łącznie z opracowaniem przypadków testowych. Co więcej, pochwalę się, że moje rozwiązanie ma aż 7 linijek kodu z nawiasami zamykającymi i returnem włącznie, a przykładowe rozwiązanie zadania ma tych linijek 26, tak więc udało mi się otrzymać w rezultacie dodatkowe punkty za styl. A o to i kodziwo:

<?php

function code($args) {
    
$position 0;
    foreach (
$args as $level) {
        while (!
in_array($position$leveltrue)) {
            
$position $level[0] ? $position $position 1;
        }
    }
    return 
$position;
}

?>

Jak zwykle, jak ktoś ma jakieś uwagi, usprawnienia do kodu, to zapraszam do wypowiadania się ;).

Kategorie: Studia i nauka, Techblog, Webdesign Trackback URL

3 komentarze do “CodeCup.pl - zadanie 17”

  1. Teżem dostał punkty ;-)

    {geshi}<?php
    function code($arr) { $start = 0; foreach($arr as $item) { $mod = ($item0 == true) ? 1 : -1; $slice = array_slice($item, 1); // oszczedz pamiec i cpu, w for tez… for($p = $start , $end = abs(max($slice)); $p * $mod <= $end ; $p += $mod) { if(in_array($p, $slice)) { $start = $p; break; } } } return $start;
    }
    ?>{/geshi}

    Jogger jak zawsze popsuje więc phpfi: http://phpfi.com/308955

  2. Można powiedzieć, że pomysł na rozwiązanie ten sam mieliśmy. Różni się tylko w szczegółach ;).

    Podoba mi się wykorzystanie array_slice, za to w „$item0 true" to " true” uznałbym za nadmiarowe ;).

  3. CodeCup.pl - zadanie 20

    Tym razem w konkursie programistycznym Codecup pojawiło się zadanie podchwytliwe - ciekawe ile osób próbowało tego samego rozwiązania co ja i zdziwiło się pojawiającym się komunikatem :). Treść zadania to napisanie funkcji konwertującej[...]

Dodaj komentarz


Formatowanie markdown włączone (składnia Markdown).

Przykłady: *em* | **strong** | [Opis linka](http://jogger.pl/) | > cytowana treść