Day 18 of 30 Ruby Coding Challenge - Finding the Missing Number Game

Day 18 of 30 Ruby Coding Challenge - Finding the Missing Number Game

We're going to play a game: find the missing number in a given array. This first solution will be not that great but we'll get the job done!

This is the blog post version of the 

Let’s go straight to the point

Coding Challenge

Create a function that takes an array of numbers between 1 and 10 (excluding one number) and returns the missing number.

A few points:

  • The array of numbers will be unsorted (not in order).
  • Only one number will be missing.

Examples

Ruby

1

find_missing_num([1, 2, 3, 4, 6, 7, 8, 9, 10]) ➞ 5

2

3

find_missing_num([7, 2, 3, 6, 5, 9, 1, 4, 8]) ➞ 10

4

5

find_missing_num([10, 5, 1, 2, 4, 6, 8, 3, 9]) ➞ 7

Pretty simple, isn’t it?

Algorithm in Ruby

Let’s break the algorithm down to a few small steps:

Step 1

We need to go through a list of items (an array), going from 1 to 10.

Ruby

1

def find_missing_num(array)

2

  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].each do |item|

3

    end

4

end

5

6

array = [1, 2, 3, 4, 6, 7, 8, 9, 10]

7

find_missing_num(array)

Ruby provides us a really better way to do this:

Ruby

1

def find_missing_num(array)

2

  (1..10).each do |item|

3

    end

4

end

5

6

array = [1, 2, 3, 4, 6, 7, 8, 9, 10]

7

find_missing_num(array)

Step 2

We’re going to compare each number (from 1 to 10) with the numbers in the given array.

Ruby

1

def find_missing_num(array)

2

  (1..10).each do |item|

3

    array.each do |number|

4

      if item == number

5

        break # breaking the execution

6

      end      

7

    end

8

  end

9

end

10

11

array = [1, 2, 3, 4, 6, 7, 8, 9, 10]

12

find_missing_num(array)

We break the execution once if find the desired number because we don’t need to continue looking for the number

Step 3

Because we want to return the number that wasn’t found in the array, I’m going to create a local variable to indicate that.

Ruby

1

def find_missing_num(array)

2

  (1..10).each do |item|

3

    found = false

4

    array.each do |number|

5

      if item == number

6

        found = true

7

        break

8

      end      

9

    end

10

    if found = false

11

      return item

12

    end

13

  end

14

end

15

16

array = [1, 2, 3, 4, 6, 7, 8, 9, 10]

17

find_missing_num(array)

That’s it!

I know, that’s not beautiful but it works : )

Do you have a better/different version? Drop that in the comments and bring more healthy discussions :)

Thanks for the visit and in the next coding challenge we’re going to explore a more decent way to solve this puzzle, see you there!

Don’t forget to come by and say hi!

Courses Twitter Youtube Instagram Linkedin GitHub

ruby programming code algorithms coding game ruby on rails arrays

Bootstrap 5 Complete Course with Examples

Bootstrap 5 Tutorial - Bootstrap 5 Crash Course for Beginners

Nest.JS Tutorial for Beginners

Hello Vue 3: A First Look at Vue 3 and the Composition API

Building a simple Applications with Vue 3

Deno Crash Course: Explore Deno and Create a full REST API with Deno

How to Build a Real-time Chat App with Deno and WebSockets

Convert HTML to Markdown Online

HTML entity encoder decoder Online

Day 14 of 30 Ruby Coding Challenge - Fibonacci Sequence the Ruby Way

Day 14 of 30. We're going to solve the famous Fibonacci sequence by taking advantage of features that Ruby offers.

Day 16 of 30 Ruby Coding Challenge - Sum Even Numbers

Day 16 of 30 - Ruby Coding Challenges in 30 Days. We're going to sum all the even numbers in a given Fibonacci sequence.This is the blog post version of the Youtube video from the 30 Ruby Coding Challenges in 30 Days series

Day 17 Ruby Coding Challenge - Sum Even Numbers in Fibonacci Sequence - DZone Web Dev

Day 17 of 30 - Ruby Coding Challenges in 30 Days. We're going to sum all the even numbers in a given Fibonacci sequence with a better code design.

Hire Ruby on Rails Developer | Hire RoR Developer

#1 Ruby on Rails development company. Hire Ruby on rails developer or a team to build secure, scalable and complex web solutions with a quick turnaround time.

How You Can Reduce Ruby on Rails Maintenance Cost?

Your Ruby on Rails application will take you to great heights, only if you maintain it rightly. Learn how to reduce ruby on rails maintenance cost.