Menu
CoddyTech

Mengelompokkan Nilai

Termasuk bagian Logika dan Alur dalam perjalanan Swift di Coddy. Pelajaran 16 dari 56.

Pola subskrip bawaan menjadi dasar bagi dua bentuk yang umum digunakan sehari-hari.

Penghitung frekuensi: hitung berapa kali setiap kunci muncul.

let letters = ["a", "b", "a", "c", "a"]
var counts: [String: Int] = [:]
for letter in letters {
    counts[letter, default: 0] += 1
}
// counts == ["a": 3, "b": 1, "c": 1]

Pengelompokan: kumpulkan nilai berdasarkan kunci turunan:

let words = ["hi", "hello", "yo", "hey"]
var byLength: [Int: [String]] = [:]
for w in words {
    byLength[w.count, default: []].append(w)
}
// [2: ["hi", "yo"], 5: ["hello"], 3: ["hey"]]

Nilai default untuk kasus bucketing adalah array kosong. Nilai default: hanya digunakan saat key tidak ada, lalu sisi kanan mengubah entri secara langsung.

challenge icon

Tantangan

Sedang

Baca satu baris input: list kata yang dipisahkan dengan koma.

Cetak, dengan urutan berikut:

  1. Satu baris untuk setiap panjang kata yang muncul dalam input, diurutkan dari yang terpendek hingga terpanjang, dengan format <length>: <count> dengan count adalah jumlah kata dengan panjang tersebut
  2. Most common length: <n> dengan n adalah panjang kata dengan jumlah tertinggi. Jika jumlahnya sama, pilih panjang yang lebih pendek.

Untuk input hi,hello,yo,hey,bonjour,bye, output-nya adalah:

2: 2
3: 2
5: 1
7: 1
Most common length: 2

(Panjang 2 dan 3 sama-sama muncul dua kali. Jika jumlahnya sama, pilih yang lebih pendek, jadi 2 yang menang.)

Coba sendiri

let words = readLine()!.components(separatedBy: ",")

// TODO: hitung jumlah kata berdasarkan panjangnya; cetak hasil yang sudah diurutkan; cetak panjang yang paling umum (jika seri: yang lebih pendek)
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Playground Swift