Dikdörtgen bir yükseklik matrisi verildiğinde kontürlerini çizin.
Görev
İki eleman x
ve y
aynı kontür seviyesinde ise floor(x/10) == floor(y/10)
. Örneğin, 52
ve 58
aynı kontur düzeyde olmakla 58
ve 64
değillerdir.
Kontur çizme eylemi şu şekilde tanımlanır: Her eleman için e
, aşağıdaki gibi seçilen iki karakterli bir dize ile değiştirin:
- ilk karakter,
" "
eğer aşağıdaki elemente
aynı kontur seviyesindeysee
veya aşağıdan element yoksae
ve"_"
- İkinci karakter
" "
sağındaki elemanı eğere
aynı kontur düzeyde olduğunue
veya sağında hiçbir unsur yokture
ve"|"
başka türlü
Satırlar içindeki öğeler birleştirilir, ardından satırlar yeni satırlarla birleştirilir.
Örnek
Diyelim ki girdi şu şekilde [[5,20],[3,6]]
görselleştirildi:
5 20
3 6
Önce biz bakarız 5
. Yana 3
aynı kontur düzeyde olduğunu 5
, ilk karakterdir " "
. Çünkü ikinci karakter 20
aynı kontur seviyesinde olmadığı için .5
"|"
Şimdi bakıyoruz 20
. Yana 6
aynı kontur düzeyde değil 20
, ilk karakterdir "_"
. Sağında hiçbir element olmadığı için 20
, ikinci karakter " "
.
Şimdi bakıyoruz 3
. Aşağıda hiçbir element olmadığı 3
için ilk karakter " "
. Çünkü ikinci karakter 6
aynı kontur seviyesinde olduğu 3
için " "
.
Şimdi bakıyoruz 6
. Aşağıda hiçbir element olmadığı 6
için ilk karakter " "
. Sağında hiçbir element olmadığı için 6
, ikinci karakter " "
.
Bu iki karakterli dizgelere dayanarak almak için değiştirmeler yaparız [[" |","_ "],[" "," "]]
. Bunları bir araya getirdikten sonra, bir çıktısı alıyoruz.
|_
kurallar
- Giriş matrisi her zaman dikdörtgen olacak ve pozitif tamsayılardan oluşacaktır.
- Sondaki boşluklar veya yeni satırlar herhangi bir miktarda (0 dahil) olabilir ve hiçbir şekilde tutarlı olması gerekmez.
- Aynı sonuçları ürettiğiniz sürece aynı algoritmayı izlemeniz gerekmez.
- Programınız veya işleviniz yeni satırlarla ayrılmış bir dizge, dizeler listesi veya eşdeğer bir çıktı verebilir.
- Bu kod golf , bayt cinsinden en kısa kod kazanır.
Test Kılıfları
input
output
[[1,5,8,9],[3,11,13,8],[7,14,10,9],[4,8,7,6]]
_ _
| |
|_ _|
[[0,10,20,30,40,50,60,70,80,90],[0,0,10,10,20,20,30,30,40,40],[0,0,0,10,10,10,20,20,20,30],[0,0,0,0,10,10,10,10,20,20],[0,0,0,0,0,10,10,10,10,10],[0,0,0,0,0,0,10,10,10,10],[0,0,0,0,0,0,0,10,10,10],[0,0,0,0,0,0,0,0,10,10],[0,0,0,0,0,0,0,0,0,10],[0,0,0,0,0,0,0,0,0,0]]
|_|_|_|_|_|_|_|_|_
|_ |_ _|_ _|_ _
|_ |_ _ |_
|_ |_ _
|_
|_
|_
|_
|_
[[5,5,5,5,5,5,5,5,5,5,5],[5,10,10,10,10,10,10,10,10,10,5],[5,10,15,15,15,15,15,15,15,10,5],[5,10,15,20,20,20,20,20,15,10,5],[5,10,15,20,25,25,25,20,15,10,5],[5,10,15,20,25,30,25,20,15,10,5],[5,10,15,20,25,25,25,20,15,10,5],[5,10,15,20,20,20,20,20,15,10,5],[5,10,15,15,15,15,15,15,15,10,5],[5,10,10,10,10,10,10,10,10,10,5],[5,5,5,5,5,5,5,5,5,5,5]]
_ _ _ _ _ _ _ _ _
| |
| _ _ _ _ _ |
| | | |
| | _ | |
| | |_| | |
| | | |
| |_ _ _ _ _| |
| |
|_ _ _ _ _ _ _ _ _|
[[35,32,29,26,25,25,25,26,29,32,35],[32,28,25,22,20,20,20,22,25,28,32],[29,25,21,18,15,15,15,18,21,25,29],[26,22,18,14,11,10,11,14,18,22,26],[25,20,15,11,7,5,7,11,15,20,25],[25,20,15,10,5,0,5,10,15,20,25],[25,20,15,11,7,5,7,11,15,20,25],[26,22,18,14,11,10,11,14,18,22,26],[29,25,21,18,15,15,15,18,21,25,29],[32,28,25,22,20,20,20,22,25,28,32],[35,32,29,26,25,25,25,26,29,32,35]]
_| |_
_| _ _ _ _ _ |_
_| |_
| _ _ _ |
| | | |
| | | |
| |_ _ _| |
|_ _|
_ |_ _ _ _ _| _
|_ _|
| |