Dalam xkcd-nya tentang format tanggal standar ISO 8601 Randall menyelinap di notasi alternatif yang agak aneh:
Angka-angka besar adalah semua digit yang muncul pada tanggal saat ini dalam urutan yang biasa, dan angka-angka kecil adalah indeks berbasis 1 dari kemunculan digit itu. Jadi contoh di atas mewakili 2013-02-27.
Mari kita mendefinisikan representasi ASCII untuk tanggal seperti itu. Baris pertama berisi indeks 1 hingga 4. Baris kedua berisi angka "besar". Baris ketiga berisi indeks 5 hingga 8. Jika ada beberapa indeks dalam satu slot, mereka terdaftar bersebelahan dari yang terkecil hingga yang terbesar. Jika ada paling banyak mindeks dalam slot tunggal (yaitu pada digit yang sama, dan di baris yang sama), maka setiap kolom harus memiliki m+1karakter lebar dan rata kiri:
2 3 1 4
0 1 2 3 7
5 67 8
Lihat juga tantangan rekan untuk pertobatan yang berlawanan.
Tantangan
Diberi tanggal dalam notasi xkcd, mengeluarkan tanggal ISO 8601 yang sesuai ( YYYY-MM-DD).
Anda dapat menulis sebuah program atau fungsi, mengambil input melalui STDIN (atau alternatif terdekat), argumen baris perintah atau argumen fungsi dan mengeluarkan hasilnya melalui STDOUT (atau alternatif terdekat), nilai pengembalian fungsi atau parameter function (out).
Anda dapat berasumsi bahwa input adalah tanggal yang valid antara tahun 0000dan 9999, termasuk.
Tidak akan ada spasi utama di input, tetapi Anda dapat mengasumsikan bahwa garis-garisnya diisi dengan spasi ke persegi panjang, yang berisi paling banyak satu kolom spasi tambahan.
Aturan standar kode-golf berlaku.
Uji Kasus
2 3 1 4
0 1 2 3 7
5 67 8
2013-02-27
2 3 1 4
0 1 2 4 5
5 67 8
2015-12-24
1234
1 2
5678
2222-11-11
1 3 24
0 1 2 7 8
57 6 8
1878-02-08
2 4 1 3
0 1 2 6
5 678
2061-02-22
1 4 2 3
0 1 2 3 4 5 6 8
6 5 7 8
3564-10-28
1234
1
5678
1111-11-11
1 2 3 4
0 1 2 3
8 5 6 7
0123-12-30
1atas 2, jadi digit pertama adalah 2. 2di atas 0, jadi digit kedua adalah 0. 3di atas 1, di 4atas 3, jadi kita dapatkan 2013sebagai empat digit pertama. Sekarang di 5bawah 0, jadi digit kelima adalah 0, 6dan 7keduanya di bawah 2, jadi keduanya adalah digit 2. Dan akhirnya, 8ada di bawah 7, jadi digit terakhir adalah 8, dan kita berakhir dengan 2013-02-27. (Tanda hubung tersirat dalam notasi xkcd karena kita tahu pada posisi apa mereka muncul.)
