Menu
CoddyTech

Matematika, Selisih Simetris

Termasuk bagian Logika dan Alur dalam perjalanan C# di Coddy. Pelajaran 65 dari 66.

Symmetric difference dari dua set berisi elemen yang ada di salah satu set, tetapi tidak ada di irisan keduanya (elemen yang muncul tepat di salah satu set).

Buat dua object HashSet:

HashSet<int> set1 = new HashSet<int>() { 1, 2, 3, 4 };
HashSet<int> set2 = new HashSet<int>() { 3, 4, 5, 6 };

Buat HashSet baru untuk hasilnya:

HashSet<int> symmetricDifference = new HashSet<int>(set1);

Gunakan method SymmetricExceptWith untuk menghitung selisih simetris:

symmetricDifference.SymmetricExceptWith(set2);

Set symmetricDifference berisi nilai berikut setelah kode di atas dijalankan:

{ 1, 2, 5, 6 }

Elemen 3 dan 4 ada di kedua set, jadi keduanya tidak muncul dalam selisih simetris.

challenge icon

Tantangan

Mudah

Buat method bernama FindSymmetricDifference yang menerima dua argumen:

  • HashSet berisi bilangan bulat (set1)
  • HashSet berisi bilangan bulat (set2)

Method tersebut harus mengembalikan HashSet<int> baru yang berisi selisih simetris dari kedua set. Bagian program lainnya (membaca input, mengurutkan, dan mencetak hasil) sudah disediakan untukmu.

Coba sendiri

using System;
using System.Collections.Generic;
using System.Linq;

class Program
{
    public static HashSet<int> FindSymmetricDifference(HashSet<int> set1, HashSet<int> set2)
    {
        // Tulis kodemu di sini
    }
    
    static void Main(string[] args)
    {
        string[] input1 = Console.ReadLine().Split(',');
        string[] input2 = Console.ReadLine().Split(',');
        
        HashSet<int> set1 = new HashSet<int>();
        HashSet<int> set2 = new HashSet<int>();
        
        foreach (string s in input1)
        {
            if (int.TryParse(s.Trim(), out int num))
            {
                set1.Add(num);
            }
        }
        
        foreach (string s in input2)
        {
            if (int.TryParse(s.Trim(), out int num))
            {
                set2.Add(num);
            }
        }
        
        HashSet<int> result = FindSymmetricDifference(set1, set2);
        
        // Cetak hasilnya dalam urutan menaik
        int[] orderedResult = result.OrderBy(x => x).ToArray();
        foreach (int num in orderedResult)
        {
            Console.WriteLine(num);
        }
    }
}
quiz iconUji dirimu

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

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler C# online