05 May 2023PythonUnknown

Poor Pigs

notes and solution files for poor pigs.

this entry collects the solution files i have for poor pigs. i may expand it with a fuller write-up later, but the implementation files are already here.

available solution files

  • Python poor-pigs/solution.py

Solution files

Pythonpoor-pigs/solution.py
import math
from typing import List

class Solution:
    def poorPigs(self, buckets: int, minutesToDie: int, minutesToTest: int) -> int:
        if buckets == class="syntax-number">1:
            return class="syntax-number">0

        states_per_pig = (minutesToTest class=class="syntax-string">"syntax-comment">// minutesToDie) + class="syntax-number">1

        pigs = class="syntax-number">0
        while states_per_pig ** pigs < buckets:
            pigs += class="syntax-number">1

        return pigs

def test_solution():
    solution = Solution()

    result1 = solution.poorPigs(class="syntax-number">1000, class="syntax-number">15, class="syntax-number">60)
    print(fclass="syntax-string">"Test class="syntax-number">1: {result1}")

    result2 = solution.poorPigs(class="syntax-number">4, class="syntax-number">15, class="syntax-number">15)
    print(fclass="syntax-string">"Test class="syntax-number">2: {result2}")

    result3 = solution.poorPigs(class="syntax-number">4, class="syntax-number">15, class="syntax-number">30)
    print(fclass="syntax-string">"Test class="syntax-number">3: {result3}")

if __name__ == class="syntax-string">"__main__":
    test_solution()