Seseorang memberi istri saya kalender dekoratif yang terdiri dari empat kubus. Ini dia menunjukkan tanggal hari ini (pada posting tantangan ini) di bagian depan:
Ketika saya pertama kali melihatnya, saya melihatnya dari sudut yang salah (dari langsung di atas) dan tidak tahu mengapa ia memberikan informasi ini:
[["February", "January"], [3], [7], ["Monday", "Tuesday"]]
Tugas Anda adalah mereplikasi kesalahan saya untuk tanggal apa pun di 2019.
Tantangan
Tulis program atau fungsi yang mengambil tanggal dari 2019, dan tampilkan apa yang muncul di atas semua kubus ketika tanggal itu ditampilkan menghadap keluar dari depan kalender.
Ini semua enam sisi untuk semua kubus. Untuk menampilkan 6
Anda cukup membalikkan 9
terbalik. Ini 0
simetris secara vertikal, sehingga 0
terbalik masih 0
. Mungkin ada lebih dari satu jawaban yang benar untuk beberapa tanggal (mis. 11 bulan apa pun akan memiliki lebih dari satu cara untuk menggunakan kubus, dan 0
masalahnya) sehingga Anda dapat menghasilkan jawaban yang benar.
Aturan
- Celah standar dilarang.
- Format input / output fleksibel.
- Outputnya harus dalam urutan dengan kubus, tetapi tidak dalam kubus. Urutan harus kubus bulan pertama, kemudian dua kubus angka, diikuti oleh kubus hari kerja. Tetapi ketika sebuah kubus memiliki dua elemen di atas, kedua elemen itu bisa berada di urutan mana pun.
- Anda dapat mengganti
January
keDecember
0-11 atau 1-12 jika Anda suka. - Anda dapat mengganti hari dalam seminggu dengan 0-6 atau 1-7 jika Anda suka, dan Anda dapat memulai minggu pada salah satu
Sunday
atauMonday
(tetapi Anda tidak dapat memulai minggu pada hari lain - ini adalah PPGC, bukan semacam kota gila.) - Ini kode-colf . Bytes paling sedikit untuk setiap bahasa menang.
- Penjelasan didorong.
Uji kasus
(Tue) 2019-01-29 [[ "July", "August" ], [3], [7], [ "Thursday", "Wednesday" ]]
[[ "August", "July" ], [3], [7], [ "Wednesday", "Thursday" ]]
etc. since the order within each cube doesn't matter.
(Thu) 2019-07-11 [[ "May", "June" ], [3], [8], [ "Saturday", "Friday" ]]
[[ "May", "June" ], [8], [3], [ "Saturday", "Friday" ]]
since the two 1 cubes could be either way.
(Sun) 2019-10-27 [[ "January", "February" ], [3], [6], [ "Friday", "Saturday" ]]
(Wed) 2019-05-01 [[ "March", "April" ], [8], [3], [ "Monday", "Tuesday" ]]
[[ "March", "April" ], [6], [3], [ "Monday", "Tuesday" ]]
[[ "March", "April" ], [9], [3], [ "Monday", "Tuesday" ]]
since the 0 cube could have either the 8 side or the 6 side facing up, and the 6 could also be considered a 9.
(Sat) 2019-08-24 [[ "February", "January" ], [8], [5], [ "Sunday" ]]
27
di2019-10-27
harus pergi ke36
, tidak32
.Jawaban:
C (glibc) ,
327319286 byte(Beberapa jeda baris ditambahkan untuk kejelasan)
f
membutuhkan waktu satu bulan (1–12) dan satu hari (1–31). Mencetak ke stdout. Cobalah online!Kasus uji:
Tidak disatukan
Batu kubus digit
Ini adalah kemungkinan untuk digit:
Pemetaan berikut ini sepertinya merupakan pilihan terbaik untuk bermain golf:
Curang
strftime
dimaksudkan untuk dipanggil denganstruct tm
input sebagai. Sebagai gantinya, saya menyatakanint S[9]
dan menggunakanS[4]
sebagaitm_mon
danS[6]
sebagaitm_wday
. Ini berfungsi jika pustaka C menggunakan daftar anggota struct yang sama dengan standar ISO.s[99]
digunakan untuk menyimpan berbagai string daristrftime
, tetapi membuatnya menjadiint
array menghemat beberapa byte dalam pengindeksan.sumber
JavaScript (ES6), 142 byte
Mengambil input dim o n t h diindeks 1, da y0 adalah digit pertama dari tanggal dan da y1 adalah digit kedua.
(year, month, day0, day1)
manaMengembalikan di0 untuk hari minggu. Jika hari minggu kedua kosong, diatur ke- 1 .
(month0, month1, day0, day1, weekDay0, weekDay1)
mana hari hari diindeks dengan 0Cobalah online!
sumber