Skip to content
Programmingoneonone
Programmingoneonone
  • Engineering Subjects
    • Internet of Things (IoT)
    • Digital Communication
    • Human Values
  • Programming Tutorials
    • C Programming
    • Data structures and Algorithms
    • 100+ Java Programs
    • 100+ C Programs
    • 100+ C++ Programs
  • Solutions
    • HackerRank
      • Algorithms Solutions
      • C solutions
      • C++ solutions
      • Java solutions
      • Python solutions
    • Leetcode Solutions
    • HackerEarth Solutions
  • Work with US
Programmingoneonone
Programmingoneonone

HackerRank Ruby – Enumerable – group_by problem solution

YASH PAL, 31 July 202429 January 2026

In this HackerRank Ruby – Enumerable – group_by problem solution Let’s say you have a list of 100 integers and you want to group them according to their even and odd value.

In Ruby, you can easily do this by using group_by method provide by Enumerable module.

> (1..5).group_by {|x| x%2}

{1=>[1,3,5], 0=>[2, 4]}

Of course this is a very simple example and its use can be very complicated in nature.

In this challenge, your task is to group the students into two categories corresponding to their marks obtained in a test. The list of students will be provided in a marks hash with student name as key and marks obtained (out of 100) as value pair, along with the pass_marks as an argument.

The method group_by_marks must return a Hash containing an array of students who passed as value to Passed key, and those who failed as value to Failed key. If a particular key is empty, don’t return that key.

For example,

> marks = {“Ramesh”:23, “Vivek”:40, “Harsh”:88, “Mohammad”:60}

> group_by_marks(marks, 30)

=> {“Failed”=>[[“Ramesh”, 23]], “Passed”=>[[“Vivek”, 40], [“Harsh”, 88], [“Mohammad”, 60]]}

HackerRank Ruby - Enumerable - group_by problem solution

HackerRank Ruby – Enumerable – group_by problem solution.

def group_by_marks(marks, n)
    marks.group_by{|key, value| value > n ? "Passed" : "Failed"}
end

Ruby – Enumerable – group_by problem solution.

def group_by_marks(marks, n)
    grouped = Hash.new
    grouped =  marks.group_by{ |k,x| x>=n }
    
    result=Hash.new
    if(!grouped[false].nil?)
        result["Failed"] = grouped[false]
    end
    if(!grouped[true].nil?)
        result["Passed"] = grouped[true]
    end
    return result
end

coding problems solutions Hackerrank Problems Solutions Ruby Solutions HackerRankruby

Post navigation

Previous post
Next post

Leave a Reply

Your email address will not be published. Required fields are marked *

Programmingoneonone

We at Programmingoneonone, also known as Programming101 is a learning hub of programming and other related stuff. We provide free learning tutorials/articles related to programming and other technical stuff to people who are eager to learn about it.

Pages

  • About US
  • Contact US
  • Privacy Policy

Practice

  • Java
  • C++
  • C

Follow US

  • YouTube
  • LinkedIn
  • Facebook
  • Pinterest
  • Instagram
©2026 Programmingoneonone | WordPress Theme by SuperbThemes