Pengantar:
Secara umum biasanya kita berbicara tentang empat dimensi: tiga dimensi ruang untuk x
, y
dan z
; dan satu dimensi waktu. Demi tantangan ini namun, kami akan membagi dimensi waktu menjadi tiga juga: past
, present
, dan future
.
Memasukkan:
Dua daftar masukan. Satu berisi bilangan bulat x,y,z
koordinat, dan satu berisi bilangan bulat tahun.
Keluaran:
Satu dari empat keluaran berbeda dan konstan pilihan Anda sendiri. Satu untuk menunjukkan output space
; satu untuk menunjukkan output time
; satu untuk menunjukkan output both space and time
; dan satu untuk menunjukkan output neither space nor time
.
Kami akan menunjukkan kami pergi ke ketiga dimensi ruang jika perbedaan bilangan bulat-tupel bukan 0 untuk ketiga dimensi.
Kami akan menunjukkan bahwa kami pergi ke ketiga dimensi waktu jika setidaknya ada satu tahun di masa lalu, setidaknya satu tahun di masa depan, dan setidaknya satu tahun sama dengan tahun saat ini (jadi di masa sekarang).
Contoh:
Input: Daftar
koordinat: [{5,7,2}, {5,3,8}, {-6,3,8}, {5,7,2}]
Daftar tahun:[2039, 2019, 2018, 2039, 2222]
Output:
Konstan untukspace
Mengapa?
The x
koordinat [5,5,-6,5]
. Karena mereka tidak semuanya sama, kami telah melalui x
dimensi ruang.
The y
koordinat [7,3,3,7]
. Karena mereka tidak semuanya sama, kami juga telah melewati y
dimensi ruang.
The z
koordinat [2,8,8,2]
. Karena mereka tidak semuanya sama, kami juga telah melewati z
dimensi ruang.
Tahun ini adalah 2018
. Tidak ada tahun sebelum ini, jadi kami tidak mengunjungi past
dimensi waktu.
Ada 2018
hadiah dalam daftar tahun, jadi kami mengunjungi present
dimensi waktu.
Ada beberapa tahun di atas 2018
( [2039, 2019, 2039, 2222]
), jadi kami juga mengunjungi future
dimensi waktu.
Karena kami telah mengunjungi ketiga space
dimensi, tetapi hanya dua dari tiga time
dimensi, hasilnya hanya akan (konstanta untuk) space
.
Aturan tantangan:
- Anda dapat menggunakan empat output berbeda dan konstan untuk empat kemungkinan kondisi.
- Input dapat dalam format apa pun yang masuk akal. Daftar koordinat dapat berupa tupel, daftar bagian dalam / array ukuran 3, string, objek, dll. Daftar tahun mungkin merupakan daftar objek tanggal bukan bilangan bulat juga jika akan menguntungkan byte-count Anda.
- Anda dapat mengasumsikan
x,y,z
koordinatnya bilangan bulat, jadi tidak perlu menangani desimal floating point. Namun, salah satu darix
,,y
dan / atauz
koordinat dapat berupa nilai negatif. - Anda tidak dapat mengambil daftar input yang sudah dipesan sebelumnya. Daftar input harus dalam urutan yang ditampilkan dalam kasus uji.
- Anda dapat mengasumsikan semua nilai tahun akan berada dalam kisaran
[0,9999]
; dan Anda dapat mengasumsikan semua koordinat berada dalam kisaran[-9999,9999]
. - Jika bahasa Anda tidak memiliki cara APA PUN untuk mengambil kembali tahun ini, tetapi Anda masih ingin melakukan tantangan ini, Anda dapat menganggapnya sebagai input tambahan dan menandai jawaban Anda sebagai (tidak bersaing) .
Aturan umum:
- Ini adalah kode-golf , jadi jawaban tersingkat dalam byte menang.
Jangan biarkan bahasa kode-golf mencegah Anda dari memposting jawaban dengan bahasa yang bukan kode. Cobalah untuk memberikan jawaban sesingkat mungkin untuk bahasa pemrograman 'apa pun'. - Aturan standar berlaku untuk jawaban Anda dengan aturan I / O default , sehingga Anda diizinkan untuk menggunakan STDIN / STDOUT, fungsi / metode dengan parameter yang tepat dan tipe pengembalian, program penuh. Panggilanmu.
- Celah default tidak diperbolehkan.
- Jika memungkinkan, silakan tambahkan tautan dengan tes untuk kode Anda (yaitu TIO ).
- Juga, menambahkan penjelasan untuk jawaban Anda sangat dianjurkan.
Kasus uji:
Coordinates-input: [{5,7,2}, {5,3,8}, {-6,3,8}, {5,7,2}]
Years-input: [2039, 2019, 2018, 2039, 2222]
Output: space
Coordinates-input: [{0,0,0}, {-4,-4,0}, {-4,2,0}]
Years-input: [2016, 2019, 2018, 2000]
Output: time
Coordinates-input: [{-2,-2,-2}, {-3,-3,-3}]
Years-input: [2020, 1991, 2014, 2018]
Output: both
Coordinates-input: [{5,4,2}, {3,4,0}, {1,4,2}, {9,4,4}]
Years-input: [2020, 1991, 2014, 2017, 2019, 1850]
Output: neither
[0,9999]
baik-baik saja (dan[-9999,9999]
untuk koordinat juga baik-baik sajaJawaban:
05AB1E , 15 byte
Output adalah daftar di
[space, time]
mana 1 berartix
dan 0 berartino x
Cobalah online!
Penjelasan
sumber
-.±
alih-alih.S
(maka byte +1) dan‚
(berpasangan) sebagai ganti)
Ùg3Q
, yang terasa seperti pencuri byte terbesar, tapi saya tidak yakin itu mungkin: /ê
dan beberapa operasi bitwise atau delta atau sesuatu, tetapi saya tidak dapat menemukan alternatif 3-byte.Python 2 ,
111109 byteCobalah online!
sumber
Perl 6 ,
4746 byte-1 byte terima kasih kepada nwellnhof
Cobalah online!
Blok kode anonim yang mengambil dua daftar dan mengembalikan sejumlah boolean, dengan elemen pertama adalah apakah Anda melakukan perjalanan dalam waktu, dan yang kedua adalah apakah Anda tidak melakukan perjalanan di luar angkasa.
Penjelasan
sumber
Japt, 22 byte
Mengambil input sebagai 2D-array integer untuk dimensi ruang dan 1D-array integer selama bertahun-tahun. Output
2
untuk ruang saja, hanya1
waktu,3
untuk keduanya dan0
untuk keduanya.Cobalah
sumber
Japt , 25 byte
Saya 100% yakin ini bukan pendekatan terbaik, masih mencari cara yang lebih singkat untuk melakukan ini: c
Mengembalikan tuple boolean. Yang pertama adalah jika Anda bepergian dalam ruang dan yang kedua jika Anda bepergian dalam waktu
Cobalah online!
sumber
yâ
transposisi, ambil item unik, dan transpos ulang , jadi Anda mungkin ingin melakukannyaUy e_â ʦ1Ã
)â
dalame
metode pada percobaan pertama saya, juga, sebelum pindah key
pada kemauan untuk melihat apakah itu akan berhasil.q
dalam array yang dipetakan yang dipetakan,typeof q instanceof Array
... sungguh bug yang mudah: P Tebak saya tidak bisa memperbaikinya sekarang sampai melepaskan 1.4.6 ...JavaScript (ES6),
104100 byteMengambil input sebagai1 untuk waktu ,2 untuk ruang ,3 untuk keduanya atau0 untuk keduanya .
(space)(time)
. Kembali24% dari kode dihabiskan untuk mencari tahu di tahun mana kita berada ... \ o /
Cobalah online!
Berkomentar
sumber
console.log(f([[5,4,2], [3,4,0], [1,4,2], [9,4,4]])([2020])) // neither
R ,
106, 105 byteCobalah online!
Memasukkan :
Output nilai integer sama dengan:
sumber
Batch, 353 byte
Catatan: Karena koma adalah pemisah argumen dalam Batch, untuk memasukkan koordinat ruang yang Anda perlu kutip, mis
Penjelasan:
Matikan output yang tidak diinginkan.
Siapkan dua bitmasks dan ekstrak tahun ini. (Di YYYY-MM-DD digunakan
%date:~,4%
untuk jumlah byte yang sama.)Simpulkan semua argumen. The
~
penyebab nilai koordinat untuk dipecah menjadi parameter yang terpisah.Periksa apakah bitmasks sepenuhnya diatur dan hasilkan output yang sesuai.
Lihat apakah ini pasangan koordinat atau koordinat dan setahun.
Jika itu adalah koordinat maka perbarui bitmask ruang berdasarkan apakah dimensi ruang yang relevan dikunjungi.
Jika setahun, perbarui bitmask waktu berdasarkan apakah dimensi waktu yang relevan dikunjungi.
sumber
Java 10, 154 byte
Pengembalian
1
untuk ruang ,2
untuk waktu ,3
untuk keduanya ,0
untuk keduanya . Cobalah online di sini .Tidak Disatukan:
sumber