Home

Awesome

Kotlin coding challenges

This repository contains a set of programming challenges that are intended to be solved by using the Kotlin language (hints, solutions tests and useful links are here as well).

The purpose of this repository is to help you to practice coding and develop strong problem-solving skills. This will help you to become a better programmer and improve your chance of getting a new job by passing whiteboard coding interviews.

Challenge structure

Each challenge is located in a separate package, and it contains 3 main files (screen):

Keep in mind that each challenge will usually have more than one solution. Even simple challenges like String reversal can be solved in 10 different ways. Usually, we compare various solutions using (Big O notation) to determine space/time complexity, and we look at code readability.

How do I start?

  1. Install IntelliJ IDEA
  2. Import the project by using the IntelliJ IDEA menu: File | New | Project From Version Control | Git
  3. Choose a challenge (src\test\kotlin\com\igorwojda package) and code the solution in the Challenge.kt file
  4. Run the tests in the Challenge.kt file to verify the provided solution

Let's solve some challenges

The challenges below are segregated by different difficulties. The repository also contains challenges grouped by problem type.

Some challenges may contain a reference to other challenges that should be solved before to have a better understanding of the problem. Check the look at problem-solving strategy .

Take your time before you view the presented solution. To succeed you need to practice often, repeat the same challenges multiple times and be persistent over time.

Good luck! 🤞

Beginner

Intermediate

Advanced

Expert

Troubleshoot

If you don't see the green play icon used to run the tests try to open Settings > Build, Execution, Deployment > Build tools > Gradle and set Gradle JVM to a different version.

Useful links

More coding challenges

Challenges

Game challenges

Video courses

Books

Websites

Coding interview repositories

Contribute

Feedback and new contributions are welcome whether it's through bug reports or new PRs. To add new coding challenges just follow this guide and open PR.

Author

Follow me

Follow me

License

MIT License

Copyright (c) 2023 Igor Wojda

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.