Data Structures and Algorithms

#13
Advanced Challenges

Learning Outcomes

  1. Obtain the fundamental knowledge on data structures and algorithms

  2. A foundation to programming for problem solving

  3. Development of analytical skills via competitive learning

  4. Have fun while gaining hands on experience in coding

Description

What is HackerRank?

HackerRank is a place where programmers from all over the world come together to solve problems (by coding solutions) and to practice different programming paradigms like Object Oriented Programming. It covers a wide range of Computer Science domains such as algorithms, machine learning etc."

Why should I solve challenges?

  • Fun – What's more exciting than solving challenging problems? HackerRank is constantly adding helpful features to make their platform the best possible experience, such as boilerplate code and animations that display when you're running code.

  • Glory – As you solve more challenges, you earn points and move up the HackerRank Leaderboard.

  • Community – HackerRank has a constantly growing and strong community of developers who discuss problems, learn, compete, and collaborate together.

  • Learning – Expand your knowledge by learning new programming topics and techniques by going through the available challenges and editorial solutions. The best way to learn something is by doing it!

How do I write my code?

Each challenge page has an online editor embedded in the page for you to write and test your code in. If you're more comfortable coding in your favorite IDE, you can always upload your code to the challenge page when you're done!

How do I test and submit my code?

When you finish the first version of your code, click Run Code button to run your solution against one or more small sample test cases. Once you're confident your solution covers the entire problem, click Submit to run it against the entire set of test cases (or bots) and get a score for the challenge. Don't worry if you don't pass all the test cases, you can always rework your code and submit it again for an updated score. The score that shows up on the leaderboard will be the one for your top-scoring submission.

Data structures and algorithms

At the backbone of every program or piece of software are two entities: data and algorithms. Algorithms transform data into something a program can effectively use. Therefore, it is important to understand how to structure data so algorithms can maintain, utilize, and iterate through data quickly.

What are data structures?

Data structures are the way we are able to store and retrieve data. You may already be familiar with Python lists and dictionaries, or Javascript arrays and objects. If so, you know that lists and arrays are sequential with data accessed by index while dictionaries and objects use a named key to store and retrieve information.

The data structures that exist in programming languages are pretty similar to real-world systems that we use outside of the digital sphere. Imagine that you go to the grocery store. At this particular grocery store, the frozen pizza is stored next to the bell peppers and the toothbrushes are next to the milk. The store does not have signs that indicate where different items are located. In this disorganised grocery store, you would have a pretty difficult time trying to find what you were looking for!

Fortunately, most grocery stores have a clear order to the way the store is stocked and laid out. Similarly, data structures provide us with a way to organize information (including other data structures!) in a digital space.

What are algorithms

You can think of a programming algorithm as a recipe that describes the exact steps needed for the computer to solve a problem or reach a goal. We've all seen food recipes - they list the ingredients needed and a set of steps for how to make the described meal. Well, an algorithm is just like that. In computer lingo, the word for a recipe is a procedure, and the ingredients are called inputs. Your computer looks at your procedure, follows it to the letter, and you get to see the results, which are called outputs. A programming algorithm describes how to do something, and your computer will do it exactly that way every time. Well, it will once you convert your algorithm into a language it understands!

However, it's important to note that a programming algorithm is not computer code. It's written in simple English (or whatever the programmer speaks). It doesn't beat around the bush--it has a start, a middle, and an end. In fact, you will probably label the first step 'start' and the last step 'end.' It includes only what you need to carry out the task. It does not include anything unclear, often called ambiguous in computer lingo, that someone reading it might wonder about.

How to complete the challenge

Obtain a silver badge for each of the activities listed in the Learning Resources section. Then upload the screenshots of those badges as a zip archive to step 2. 

Answer the questions in step 3

Learning Resources

To Complete, follow these steps :

Go through the learning resources given above, 

Step 1 :

Upload the deliverable

Click Here

Step 2 :

Answer the questions 

Click Here

Step 3 :

© 2019 An initiative by SLASSCOM