diff --git a/README.md b/README.md
index f1b9badc..09d3681e 100644
--- a/README.md
+++ b/README.md
@@ -749,6 +749,7 @@ Profile on LeetCode: [fartem](https://leetcode.com/fartem/).
 | 2221. Find Triangular Sum of an Array                                               | [Link](https://leetcode.com/problems/find-triangular-sum-of-an-array/)                                               | [Link](./lib/medium/2221_find_triangular_sum_of_an_array.rb)                                               | [Link](./test/medium/test_2221_find_triangular_sum_of_an_array.rb)                                               |
 | 2225. Find Players With Zero or One Losses                                          | [Link](https://leetcode.com/problems/find-players-with-zero-or-one-losses/)                                          | [Link](./lib/medium/2225_find_players_with_zero_or_one_losses.rb)                                          | [Link](./test/medium/test_2225_find_players_with_zero_or_one_losses.rb)                                          |
 | 2233. Maximum Product After K Increments                                            | [Link](https://leetcode.com/problems/maximum-product-after-k-increments/)                                            | [Link](./lib/medium/2233_maximum_product_after_k_increments.rb)                                            | [Link](./test/medium/test_2233_maximum_product_after_k_increments.rb)                                            |
+| 2265. Count Nodes Equal to Average of Subtree                                       | [Link](https://leetcode.com/problems/count-nodes-equal-to-average-of-subtree/)                                       | [Link](./lib/medium/2265_count_nodes_equal_to_average_of_subtree.rb)                                       | [Link](./test/medium/test_2265_count_nodes_equal_to_average_of_subtree.rb)                                       |
 | 2425. Bitwise XOR of All Pairings                                                   | [Link](https://leetcode.com/problems/bitwise-xor-of-all-pairings/)                                                   | [Link](./lib/medium/2425_bitwise_xor_of_all_pairings.rb)                                                   | [Link](./test/medium/test_2425_bitwise_xor_of_all_pairings.rb)                                                   |
 | 2429. Minimize XOR                                                                  | [Link](https://leetcode.com/problems/minimize-xor/)                                                                  | [Link](./lib/medium/2429_minimize_xor.rb)                                                                  | [Link](./test/medium/test_2429_minimize_xor.rb)                                                                  |
 | 2657. Find the Prefix Common Array of Two Arrays                                    | [Link](https://leetcode.com/problems/find-the-prefix-common-array-of-two-arrays/)                                    | [Link](./lib/medium/2657_find_the_prefix_common_array_of_two_arrays.rb)                                    | [Link](./test/medium/test_2657_find_the_prefix_common_array_of_two_arrays.rb)                                    |
diff --git a/leetcode-ruby.gemspec b/leetcode-ruby.gemspec
index 57bceb59..0b8d1be6 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 = '9.1.4'
+  s.version = '9.1.5'
   s.license = 'MIT'
   s.files = ::Dir['lib/**/*.rb'] + %w[README.md]
   s.executable = 'leetcode-ruby'
diff --git a/lib/medium/2265_count_nodes_equal_to_average_of_subtree.rb b/lib/medium/2265_count_nodes_equal_to_average_of_subtree.rb
new file mode 100644
index 00000000..e7c7b796
--- /dev/null
+++ b/lib/medium/2265_count_nodes_equal_to_average_of_subtree.rb
@@ -0,0 +1,30 @@
+# frozen_string_literal: true
+
+# https://leetcode.com/problems/count-nodes-equal-to-average-of-subtree/
+# @param {TreeNode} root
+# @return {Integer}
+def average_of_subtree(root)
+  @result = 0
+
+  dfs_for_average_of_subtree(root)
+
+  @result
+end
+
+private
+
+# @param {TreeNode} node
+# @return {Integer[]}
+def dfs_for_average_of_subtree(node)
+  return ::Array.new(2, 0) unless node
+
+  left = dfs_for_average_of_subtree(node.left)
+  right = dfs_for_average_of_subtree(node.right)
+
+  curr_sum = left[0] + right[0] + node.val
+  curr_count = left[1] + right[1] + 1
+
+  @result += 1 if curr_sum / curr_count == node.val
+
+  [curr_sum, curr_count]
+end
diff --git a/test/medium/test_2265_count_nodes_equal_to_average_of_subtree.rb b/test/medium/test_2265_count_nodes_equal_to_average_of_subtree.rb
new file mode 100644
index 00000000..0d785d8a
--- /dev/null
+++ b/test/medium/test_2265_count_nodes_equal_to_average_of_subtree.rb
@@ -0,0 +1,30 @@
+# frozen_string_literal: true
+
+require_relative '../test_helper'
+require_relative '../../lib/common/binary_tree'
+require_relative '../../lib/medium/2265_count_nodes_equal_to_average_of_subtree'
+require 'minitest/autorun'
+
+class CountNodesEqualToAverageOfSubtreeTest < ::Minitest::Test
+  def test_default_one
+    assert_equal(
+      5,
+      average_of_subtree(
+        ::TreeNode.build_tree(
+          [4, 8, 5, 0, 1, nil, 6]
+        )
+      )
+    )
+  end
+
+  def test_default_two
+    assert_equal(
+      1,
+      average_of_subtree(
+        ::TreeNode.build_tree(
+          [1]
+        )
+      )
+    )
+  end
+end