GithubHelp home page GithubHelp logo

anamika1410 / the-algo-companion Goto Github PK

View Code? Open in Web Editor NEW

This project forked from iste-vit/the-cp-companion

0.0 0.0 0.0 660 KB

Your ultimate destination for Competitive Coding this Hacktoberfest21

C++ 91.38% C 0.59% Python 2.68% Java 2.60% JavaScript 2.75%

the-algo-companion's Introduction

The-Algo-Companion with ISTE-VIT

Your ultimate destination for Competitive Coding.

Hello Fellow < Developers/ >!

👨‍💻 👩‍💻Competitive Programming is a SPORT.


IMG-20211002-WA0063


Literally, CP is a sport ⛹️‍♂️, like any other sport.

Let’s consider cricket for a while. You walk into bat for the first time. Bowler swings and you miss. You practice by keeping this “swing” in your mind and next time you’ll do much better. By practicing and doing it a couple of times, you’ll hit one over the ropes.

In a programming contest, you convert plain English sentences into a code of your favorite programming language. Walk right into it, you will learn unwritten rules of the game as you play harder and get better.

For getting started, you don’t need to know any complex algorithms or data structures. You just need to know a programming language and start competing. As you practice, you fail, and you succeed and you will learn how to solve complex problems and how to write fast and efficient code.


🎯Why is COMPETITIVE CODING Important:

  • Improves Logic

Programming logic improves by practice. You are smart from the very beginning. With competitive programming, you continuously train yourself with algorithmic problems that test the better out of your current logic skills. By practicing more and more you get better and this improves your programming logic.

  • Makes you more focused and faster

Thinking about a problem and finding its solution makes you more focused. With an improved logic, you will be able to think faster, solve problems faster, decide faster and put your thinking and solutions into code faster without going to and fro thinking which approach to use for your code.

  • Helps you solve complicated problems

By doing CP you will learn how to solve complex tasks out of the ordinary tasks. This will help prepare you for a job because you can adapt and solve various kinds of problems in various types of situations.

  • Teaches you how to work in teams

CP helps you learn how to effectively work together, as you must work with others on your team to complete the same task. In this situation, you will learn how to assess your team member’s strength and weakness and effectively divide responsibilities between each other.

  • Make you a desirable candidate for major companies

Participating in CP contests makes you a desirable candidate for big companies. In CP organizer websites and companies, these big companies always have a look and they pick the candidates with high potential and with the best ability to solve complex tasks.

Languages allowed for Competitive Coding are

  • PYTHON

  • JAVA

  • KOTLIN

  • JAVASCRIPT

  • C

  • C++


↘️Algorithms Participants can CONTRIBUTE to:

1. RECURSION

> Recursion can be defined as the technique of replicating or doing again an activity in a self-similar way calling itself again and again, and the process continues till specific condition reaches. In the world of programming, when your program lets you call that specific function from inside that function, then this concept of calling the function from itself can be termed as recursion, and the function which makes this possible is called recursive function.

2. DIVIDE AND CONQUER

In divide and conquer approach, the problem in hand, is divided into smaller sub-problems and then each problem is solved independently. When we keep on dividing the subproblems into even smaller sub-problems, we may eventually reach a stage where no more division is possible. Those "atomic" smallest possible sub-problem (fractions) are solved. The solution of all sub-problems is finally merged in order to obtain the solution of an original problem.

3. GREEDY APPROACH

Among all the algorithmic approaches, the simplest and straightforward approach is the Greedy method. In this approach, the decision is taken on the basis of current available information without worrying about the effect of the current decision in future.

4. DYNAMIC PROGRAMMING

Dynamic programming is a technique that breaks the problems into sub-problems, and saves the result for future purposes so that we do not need to compute the result again. The subproblems are optimized to optimize the overall solution is known as optimal substructure property.

The main use of dynamic programming is to solve optimization problems. Here, optimization problems mean that when we are trying to find out the minimum or the maximum solution of a problem. The dynamic programming guarantees to find the optimal solution of a problem if the solution exists.


ALGORITHM Repository Folder Link Solved Examples
RECURSION Repo Examples
DIVIDE AND CONQUER Repo Examples
GREEDY APPROACH Repo Examples
DYNAMIC PROGRAMMING Repo Examples

Open Source Love  PRs Welcome 


HAPPY CODING 👨‍💻

the-algo-companion's People

Contributors

aarkin7 avatar aishaandatt avatar alok27a avatar amgocyber123 avatar aryamn avatar dhairyaostwal avatar hrithikpurwar avatar iamkakashi avatar keinisha avatar kusumpriya19 avatar manasvi070902 avatar mrgokuji avatar offencive avatar priyanshu729 avatar raajzz avatar riddhidhawan avatar rishit-anand avatar shivam5522 avatar shivamkumar06 avatar shouryagupta21 avatar shresthraj2000 avatar shreyan111 avatar sparrowharsh avatar tirth22 avatar utkarshchaurasia avatar uttug avatar vikas990 avatar vivekpusti avatar yashasvi17rawat avatar zainanizar avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.