diff --git a/README.md b/README.md index bce0c22f..9fc6d442 100644 --- a/README.md +++ b/README.md @@ -657,3 +657,4 @@ Profile on LeetCode: [fartem](https://leetcode.com/fartem/). | 297. Serialize and Deserialize Binary Tree | [Link](https://leetcode.com/problems/serialize-and-deserialize-binary-tree/) | [Link](./lib/hard/297_serialize_and_deserialize_binary_tree.rb) | [Link](./test/hard/test_297_serialize_and_deserialize_binary_tree.rb) | | 336. Palindrome Pairs | [Link](https://leetcode.com/problems/palindrome-pairs/) | [Link](./lib/hard/336_palindrome_pairs.rb) | [Link](./test/hard/test_336_palindrome_pairs.rb) | | 363. Max Sum of Rectangle No Larger Than K | [Link](https://leetcode.com/problems/max-sum-of-rectangle-no-larger-than-k/) | [Link](./lib/hard/363_max_sum_of_rectangle_no_larger_than_k.rb) | [Link](./test/hard/test_363_max_sum_of_rectangle_no_larger_than_k.rb) | +| 458. Poor Pigs | [Link](https://leetcode.com/problems/poor-pigs/) | [Link](./lib/hard/458_poor_pigs.rb) | [Link](./test/hard/test_458_poor_pigs.rb) | diff --git a/leetcode-ruby.gemspec b/leetcode-ruby.gemspec index 5d424fe3..f9d5d9ab 100644 --- a/leetcode-ruby.gemspec +++ b/leetcode-ruby.gemspec @@ -5,7 +5,7 @@ require 'English' ::Gem::Specification.new do |s| s.required_ruby_version = '>= 3.0' s.name = 'leetcode-ruby' - s.version = '7.8.7' + s.version = '7.8.8' s.license = 'MIT' s.files = ::Dir['lib/**/*.rb'] + %w[README.md] s.executable = 'leetcode-ruby' diff --git a/lib/hard/458_poor_pigs.rb b/lib/hard/458_poor_pigs.rb new file mode 100644 index 00000000..8e9ab3c5 --- /dev/null +++ b/lib/hard/458_poor_pigs.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +# https://leetcode.com/problems/poor-pigs/ +# @param {Integer} buckets +# @param {Integer} minutes_to_die +# @param {Integer} minutes_to_test +# @return {Integer} +def poor_pigs(buckets, minutes_to_die, minutes_to_test) + time = minutes_to_test / minutes_to_die + 1 + result = 0 + total = 1 + + while total < buckets + total *= time + result += 1 + end + + result +end diff --git a/test/hard/test_458_poor_pigs.rb b/test/hard/test_458_poor_pigs.rb new file mode 100644 index 00000000..fdb22ffe --- /dev/null +++ b/test/hard/test_458_poor_pigs.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +require_relative '../test_helper' +require_relative '../../lib/hard/458_poor_pigs' +require 'minitest/autorun' + +class PoorPigsTest < ::Minitest::Test + def test_default_one = assert_equal(2, poor_pigs(4, 15, 15)) + + def test_default_two = assert_equal(2, poor_pigs(4, 15, 30)) +end