Sort data with Category Golang

Setiap buku dinotasikan dengan string yang bila dipecah terdiri dari 1 karakter pertama yang mewakili kategori buku, 1 karakter kedua yang mewaliki judul buku dan sisa karakter adalah bilangan bulat dari tinggi buku dalam sentimeter. Misalnya, 6B21 artinya buku tersebut berkategori Applied Science (600), judul buku adalah B dan tingginya adalah 21 sentimeter.

Buku diurutkan berdasarkan kategori berikut,

  • 6 : Applied Sciences (600)
  • 7 : Arts (700)
  • 0 : General (000)
  • 9 : Geography, History (900)
  • 4 : Language (400)
  • 8 : Literature (800)
  • 1 : Philosophy, Psychology (100)
  • 2 : Religion (200)
  • 5 : Science, Math (500)
  • 3 : Social Sciences (300)

Lalu buku-buku di dalam setiap kategori diurutkan lagi berdasarkan tinggi buku. Yang paling tinggi ditempatkan terlebih dahulu.

Identitas buku diwakili oleh 2 karakter pertama dari notasi buku, yaitu kategori buku dan judul buku. Bila ada 2 buku yang memiliki tinggi berbeda, namun berjudul sama dan kategori sama, maka itu adalah buku yang beridentitas sama (contoh 6B21 dan 6B13). Bila ada 2 buku memiliki judul yang sama namun berada di kategori yang berbeda meskipun tingginya sama, maka itu adalah buku yang identitasnya berbeda (contoh 6B21 dan 4B21).

Inputnya adalah deretan yang dipisah spasi dari notasi buku dengan batasan tinggi buku minimal 13 sentimeter dan maksimal 24 sentimeter, judul buku adalah abjad dari A sampai Z. Output dari program adalah deretan yang dipisah spasi dari notasi buku yang telah diurutkan dan hanya maksimal 2 identitas buku yang sama berada dalam deretan tersebut dengan memprioritaskan buku yang paling tinggi ukurannya

Input

3A13 5X19 9Y20 2C18 1N20 3N20 1M21 1F14 9A21 3N21 0E13 5G14 8A23 9E22 3N14

Output

0E13 9E22 9A21 9Y20 8A23 1M21 1N20 1F14 2C18 5X19 5G14 3N21 3N20 3A13

avatar tes
@tes

2 Kontribusi 0 Poin

Dipost 2 tahun yang lalu

Belum ada Jawaban. Jadi yang pertama Jawaban

Login untuk ikut Jawaban