4Clojure: Recent Problemshttp://4clojure.com/problemsRecent problems at 4Clojure.comhttp://4clojure.com/problem/374Data FusionMission: "Data Fusion Expert" menghadapi tantangan untuk menggabungkan informasi dari dua list berbeda yang berisi maps. Setiap map dalam list pertama memiliki keys :id, :x, dan :y, sementara setiap map dalam list kedua memiliki :id, :z, dan :w. Gabungkan dua list tersebut berdasarkan :id yang sama. Untuk setiap pasangan maps dengan :id yang sama, buatlah map baru yang mengandung semua keys dari kedua maps tersebut. Jika ada :id yang tidak memiliki pasangan, abaikan saja.http://4clojure.com/problem/373The Ultimate sorterMission: "The Ultimate Sorter" meminta bantuan elo untuk mengorganisir data sebuah database. Diberikan sebuah list yang berisi banyak maps, di mana setiap map mengandung keys :id, :a, :b, dan :c dengan values numerik. Tugas lo adalah untuk mengurutkan list tersebut berdasarkan nilai :a secara ascending, kemudian :b secara descending, dan terakhir :c secara ascending. Jika ada dua maps dengan nilai :a, :b, dan :c yang sama, pertahankan urutan asli mereka.http://4clojure.com/problem/372The Progen transformerMission: "The Choice Architect" meminta bantuan lo untuk mendesain ulang sistem penilaian dengan memodifikasi format soal pilihan ganda yang sudah usang. Diberikan list of maps yang masing-masing mengandung :question, :options (list of strings), dan :answer (string jawaban yang benar), transformasikan soal-soal ini ke format baru dengan opsi sebagai vector of maps yang memiliki :option-text dan :correct?. Randomisasi urutan opsi bukan bagian dari soal ini, tapi ingat untuk menandai opsi yang benar.http://4clojure.com/problem/371The Quiz UpgraderMission: "The Question Upgrader" menghadapi tantangan untuk upgrade database soal yang sudah outdated. Setiap soal dalam format lama diwakili oleh map dengan :question-text, :choices (list of strings untuk pilihan jawaban), dan :correct (string yang menunjukkan jawaban yang benar). Misi lo adalah untuk transform soal-soal tersebut ke format baru yang lebih enrich, dengan menambahkan penjelasan :explanation untuk jawaban yang benar pada setiap soal. Penjelasan bisa sederhana, seperti "Because it is the correct answer."http://4clojure.com/problem/370The Quiz RefinerMission: "The Quiz Refiner" meminta bantuan elo untuk memodernisasi kumpulan soal pilihan ganda. Diberikan list of maps, setiap map mewakili satu soal dalam format lama dengan keys :question, :options (list of strings), dan :answer (index dari jawaban yang benar dalam list :options). Transformasikan setiap soal ke format baru yang lebih intuitif dan user-friendly, dimana :options menjadi map dengan key adalah alfabet ('A', 'B', 'C', ...) dan value adalah pilihan jawabannya, serta :answer menjadi huruf dari jawaban yang benar.http://4clojure.com/problem/369The Quiz AggregatorMission: "Quiz Aggregator" menantang lo untuk membuat sistem agregasi soal pilihan ganda dari berbagai topik. Diberikan list of maps yang berisi :topic, :difficulty, dan :questions (sebuah list of strings yang mewakili soal). Elo diminta untuk menyusun ulang data menjadi map baru dengan :topic sebagai kunci utama dan nilai berupa map lain yang memetakan :difficulty ke list of :questions. Urutkan :questions dalam setiap :difficulty berdasarkan abjad.http://4clojure.com/problem/368The Content MergerMission: "Content Merger" memerlukan keahlian lo untuk menggabungkan serangkaian konten pendidikan yang tersebar dalam beberapa dokumen. Diberikan list of maps, di mana setiap map mengandung :doc-id, :content, dan :tags. Tugas lo adalah untuk menggabungkan konten dari dokumen-dokumen yang memiliki tag yang sama, dan menyajikan hasilnya dalam map baru dengan :tags sebagai kunci dan gabungan :content (dipisahkan dengan spasi jika lebih dari satu) sebagai nilai. Pastikan konten yang digabung tidak memiliki duplikasi kata dan kata-kata diurutkan secara alfabetis dalam setiap :content yang digabung.http://4clojure.com/problem/367Schedule OptimiserMission: "Schedule Optimizer" menugaskan elo untuk menyusun jadwal optimal dari list kegiatan. Setiap map dalam list mengandung :activity dan :time (dalam jam). Buatlah jadwal yang memungkinkan partisipasi maksimal dalam kegiatan dengan tidak ada kegiatan yang bersamaan. Return list kegiatan yang dipilih berdasarkan waktu awal mereka.http://4clojure.com/problem/366The Article ArchivistMission: "The Article Archivist" membutuhkan bantuan elo untuk mengkategorikan artikel berdasarkan topiknya. Diberikan sebuah list of maps, di mana setiap map merepresentasikan sebuah artikel yang memiliki :title, :content, dan :tags (list of strings). Tugas elo adalah untuk mengelompokkan artikel-artikel tersebut ke dalam map baru berdasarkan tiap :tag. Setiap :tag akan menjadi kunci, dan nilai adalah list of :titles artikel yang memiliki tag tersebut. Jika sebuah artikel memiliki lebih dari satu tag, artikel tersebut harus muncul di bawah setiap tag yang relevan.http://4clojure.com/problem/365The Curriculum ConundrumMission: "Curriculum Conundrum" membutuhkan keahlian elo untuk mengoptimalkan jadwal mata pelajaran. Setiap mata pelajaran memiliki list prasyarat yang harus dipenuhi sebelum bisa diambil. Diberikan sebuah map :subjects yang berisi :subject-id dengan list :prerequisites-nya, susun rencana studi dalam vector yang menunjukkan urutan pengambilan mata pelajaran sehingga semua prasyarat terpenuhi. Urutan dalam vector penting karena menunjukkan urutan pengambilan. Jika ada lebih dari satu solusi, return salah satunya; jika tidak ada solusi karena adanya circular dependencies, return nil.http://4clojure.com/problem/364The Enrollment EnigmaMission: "The Enrollment Enigma" menantang elo untuk merancang sebuah sistem yang dapat menentukan kapasitas kelas berdasarkan preferensi dan prioritas pendaftaran siswa. Diberikan sebuah list of maps yang berisi :student-id, :name, dan list :preferences yang berisi ID kelas yang diminati (berurutan dari yang paling diinginkan ke yang kurang diinginkan), serta sebuah map :class-capacity yang menghubungkan ID kelas dengan kapasitas maksimalnya, tugas elo adalah untuk mengalokasikan siswa ke dalam kelas sesuai dengan preferensi mereka sambil memperhatikan kapasitas kelas. Return sebuah map yang menghubungkan :class-id dengan list :student-ids yang dialokasikan ke kelas tersebut.http://4clojure.com/problem/363The Quizmaster's ConundrumMission: "Quizmaster's Conundrum" mengajak elo untuk menjadi seorang master dalam merancang soal kuis. Diberikan sebuah list of maps yang berisi data soal-soal kuis, di mana setiap map memiliki :subject, :difficulty, dan :question-count, tugas elo adalah untuk menyusun jadwal ujian dengan mengelompokkan jumlah soal berdasarkan :subject dan :difficulty. Return map yang menggabungkan semua :question-count berdasarkan :subject dan :difficulty.http://4clojure.com/problem/362The Librarian's DilemmaMission: "The Librarian's Dilemma" adalah tantangan yang dihadapi setiap pustakawan di akhir hari. Dengan list of maps yang merepresentasikan buku-buku yang dikembalikan hari ini, di mana setiap map berisi :title, :author, dan :genre, misi elo adalah untuk mengelompokkan buku-buku tersebut berdasarkan :genre dan menghitung jumlah buku di setiap genre tersebut. Return sebuah map dengan genre sebagai kunci dan jumlah buku sebagai nilai.http://4clojure.com/problem/361Stock checkingMission: "Stock Summary Report" memerlukan elo untuk membuat ringkasan stok produk dari sebuah gudang. Data produk disediakan dalam list of maps, dengan setiap map mengandung :product, :category, dan :quantity. Buatlah summary report yang mengelompokkan total quantity per :category.http://4clojure.com/problem/360Employee(s) of the MonthMission: "Employee of The Month" ingin elo menemukan karyawan dengan performa terbaik bulan ini. Data karyawan tersedia dalam bentuk list of maps, dimana setiap map berisi :name, :id, dan :score. Temukan karyawan dengan score tertinggi dan kembalikan data lengkapnya. Jika ada lebih dari satu karyawan dengan score tertinggi yang sama, kembalikan mereka semua dalam list.http://4clojure.com/problem/359The Quest for Perfect NumbersMission: "The Quest for Perfect Numbers" menantang elo untuk menemukan semua "perfect number" hingga batas n. Sebuah "perfect number" adalah bilangan yang sama dengan jumlah dari semua pembaginya, kecuali bilangan itu sendiri.http://4clojure.com/problem/358The Riddle of PartitionsMission: "The Riddle of Partitions" meminta elo untuk menghitung berapa banyak cara sebuah bilangan n dapat dibagi menjadi jumlah dari bilangan bulat positif, tanpa mempertimbangkan urutan. Ini adalah fungsi partisi p(n).http://4clojure.com/problem/357The Diophantine DilemmaMission: "The Diophantine Dilemma" meminta elo untuk menemukan setidaknya satu pasang bilangan bulat (x, y) yang memenuhi persamaan Diophantine ax + by = c, dimana a, b, dan c diberikan. Kembalikan nil jika tidak ada solusi.http://4clojure.com/problem/356Crypto ChallengeMission: "Cryptographic Challenge" menantang elo untuk menemukan jumlah dari semua bilangan prima yang kurang dari n, dimana n adalah sebuah bilangan bulat positif.http://4clojure.com/problem/355The Treasure HunterMission: Sebagai "Treasure Hunter - The Ultimate Quest", misi elo adalah menemukan path ke harta karun dalam sebuah map yang bersarang. Kalo harta karun (:treasure "here") ditemukan, kembalikan path-nya sebagai list. Kalo nggak ada, kembalikan nil.