Summary
1a. 6 lampu tidak terhubung sakelar
1b. 13 lampu menyala bersamaan
FOR i FROM 1 TO 30
TOGGLE lampuNyala[i]
END IF
END FOR
END FOR
lampuNyalaBersamaan = 0
INCREMENT lampuNyalaBersamaan
END IF
END FOR
END FUNCTION
```
```
Maka bisa diketahui bahwa lampu Pak Sugeng yang tak terhubung sakelar ada 6 lampu, sedangkan
lampu yang dapat dinyalakan secara bersamaan ada 13 lampu.
INITIALIZE JUMLAH_PERMEN AS 12
INCREAMENT jumlahCara
END IF
END FOR
END FOR
END FOR
RETURN jumlahCara
END FUNCTION
```
Jika program di atas dijalankan pada function main() sebagai berikut:
```
func main() {
}
```
Maka dapat diketahui bahwa jumlah cara Pak Zaki membagikan permen ada 21 cara.
Mengocok Kartu
Di sini ada 2 problem:
1. Mencari kartu teratas jika cara pengocokan kartu adalah mengambil N kartu dari bawah lalu
ditumpukan ke atas sebanyak M langkah.
2. Mencari berapa langkah yang dibutuhkan dengan N kartu dengan cara pengocokan seperti di
atas, dan target kartu teratas M
RETURN kartuTeratas
END FUNCTION
```
Kemudian untuk problem kedua, pseudocode yang saya buat seperti ini:
```
WHILE TRUE
INCREAMENT langkah
IF FIRST ELEMENT OF deck EQUALS target THEN
RETURN langkah
END IF
END WHILE
END FUNCTION
```
func main() {
fmt.Println("Jika N = 5, dan langkah kocokan kartu 45 langkah, maka kartu teratas adalah kartu:",
MencariKartuTeratas(5, 45))
fmt.Println("Jika N = 7, dan langkah kocokan kartu 50 langkah, maka kartu teratas adalah kartu:",
MencariKartuTeratas(7, 50))
fmt.Println("Jika N = 3, dan target kartu teratas = 2, maka jumlah langkah yang dibutuhkan:",
MencariKartuTeratas(3, 2))
```