Skip to content

Commit a912149

Browse files
committed
Convert project to IntelliJ Project and add JUnit 5
1 parent 69458ba commit a912149

File tree

242 files changed

+351
-611
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

242 files changed

+351
-611
lines changed

README.md

+80-74
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,24 @@ you to become a better programmer and improve your chance of getting a new job b
99
## Puzzle structure
1010

1111
Each puzzle is located in separate package and it contains 3 main files ([screen](./misc/image/SampleTask.png)):
12-
- `Puzzle.md` - the task description.
12+
- `desc.md` - the task description.
1313
- `Puzzle.kt` - an empty method/class where puzzle should be solved. This file also contains helper methods and a set of
1414
[JUnit](https://junit.org/junit4/) tests which verify that task was solved correctly.
15-
- `PuzzleSolution.kt` - a file containing one or more solutions.
15+
- `Solution.kt` - a file containing one or more solutions.
1616

1717
Keep in mind that each puzzle will usually have more than one solution. Even simple puzzles like
18-
[String reversal](app/src/test/java/com/igorwojda/string/reverse/Reverse.md) can be solved in
18+
[String reversal](src/test/kotlin/com/igorwojda/string/reverse/Reverse.md) can be solved in
1919
[10 different ways](https://eddmann.com/posts/ten-ways-to-reverse-a-string-in-javascript/). Usually, we compare various
2020
solutions using
2121
([Big O notation](https://medium.com/karuna-sehgal/a-simplified-explanation-of-the-big-o-notation-82523585e835)) to
2222
determine space/time complexity and we look at code readability.
2323

2424
## How do I start?
25-
1. [Checkout and open the project](https://github.com/igorwojda/kotlin-coding-puzzle/wiki/Checkout-and-open-the-project)
26-
2. [Solve the puzzle](https://github.com/igorwojda/kotlin-coding-puzzle/wiki/Solving-coding-chalenges)
27-
3. [Run the tests](https://github.com/igorwojda/kotlin-coding-puzzle/wiki/Running-tests)
25+
26+
1. Install [IntelliJ IDEA](https://www.jetbrains.com/idea/)
27+
2. Import project by using IntelliJ IDEA menu: `File | New | Project From Version Control | Git`
28+
3. Choose a puzzle and code the [solution](https://github.com/igorwojda/kotlin-coding-puzzle/wiki/Solving-coding-chalenges)
29+
4. [Run the tests](https://github.com/igorwojda/kotlin-coding-puzzle/wiki/Running-tests) to verify your solution
2830

2931
# Let's solve some puzzles
3032

@@ -36,80 +38,84 @@ problem. To succeed you need to practice often, repeat the same puzzles multiple
3638
your time before you take a look at the presented solution. **Good luck!**
3739

3840
**New in Town**
39-
- [Capitalize sentence](app/src/test/java/com/igorwojda/string/capitalizesentence/CapitalizeSentence.md)
40-
- [Get odd numbers](app/src/test/java/com/igorwojda/integer/getodd/GetOdd.md)
41-
- [Range contains range?](app/src/test/java/com/igorwojda/range/containsrange/ContainsRange.md)
42-
- [Add up to](app/src/test/java/com/igorwojda/integer/addupto/AddUpTo.md)
43-
- [Linear search](app/src/test/java/com/igorwojda/list/search/linearsearch/LinearSearch.md)
44-
- [Count down](app/src/test/java/com/igorwojda/integer/countdown/CountDown.md)
45-
- [Count up and down](app/src/test/java/com/igorwojda/integer/countupanddown/CountUpAndDown.md)
46-
- [Format train route](app/src/test/java/com/igorwojda/list/formattrainroute/FormatTrainRoute.md)
47-
- [Generate all pairs](app/src/test/java/com/igorwojda/integer/generateallpairs/GenerateAllPairs.md)
48-
- [Count unique values](app/src/test/java/com/igorwojda/list/countuniquevalues/CountUniqueValues.md)
49-
- [Print number](app/src/test/java/com/igorwojda/integer/printnumber/basic/PrintNumber.md)
50-
- [Print number with steps](app/src/test/java/com/igorwojda/integer/printnumber/steps/PrintNumberWithSteps.md)
51-
- [Power](app/src/test/java/com/igorwojda/integer/power/Power.md)
52-
- [Factorial](app/src/test/java/com/igorwojda/integer/factorial/Factorial.md)
53-
- [Product](app/src/test/java/com/igorwojda/list/product/Product.md)
54-
- [Capitalize first](app/src/test/java/com/igorwojda/list/capitalizeFirst/CapitalizeFirst.md)
55-
- [Decapitalize const](app/src/test/java/com/igorwojda/string/decapitalizeconst/DecapitalizeConst.md)
56-
- [Longest word](app/src/test/java/com/igorwojda/string/longestword/LongestWord.md)
41+
42+
- [Capitalize sentence](src/test/kotlin/com/igorwojda/string/capitalizesentence/CapitalizeSentence.md)
43+
- [Get odd numbers](src/test/kotlin/com/igorwojda/integer/getodd/GetOdd.md)
44+
- [Range contains range?](src/test/kotlin/com/igorwojda/range/containsrange/ContainsRange.md)
45+
- [Add up to](src/test/kotlin/com/igorwojda/integer/addupto/AddUpTo.md)
46+
- [Linear search](src/test/kotlin/com/igorwojda/list/search/linearsearch/LinearSearch.md)
47+
- [Count down](src/test/kotlin/com/igorwojda/integer/countdown/CountDown.md)
48+
- [Count up and down](src/test/kotlin/com/igorwojda/integer/countupanddown/CountUpAndDown.md)
49+
- [Format train route](src/test/kotlin/com/igorwojda/list/formattrainroute/FormatTrainRoute.md)
50+
- [Generate all pairs](src/test/kotlin/com/igorwojda/integer/generateallpairs/GenerateAllPairs.md)
51+
- [Count unique values](src/test/kotlin/com/igorwojda/list/countuniquevalues/CountUniqueValues.md)
52+
- [Print number](src/test/kotlin/com/igorwojda/integer/printnumber/basic/PrintNumber.md)
53+
- [Print number with steps](src/test/kotlin/com/igorwojda/integer/printnumber/steps/PrintNumberWithSteps.md)
54+
- [Power](src/test/kotlin/com/igorwojda/integer/power/Power.md)
55+
- [Factorial](src/test/kotlin/com/igorwojda/integer/factorial/Factorial.md)
56+
- [Product](src/test/kotlin/com/igorwojda/list/product/Product.md)
57+
- [Capitalize first](src/test/kotlin/com/igorwojda/list/capitalizeFirst/CapitalizeFirst.md)
58+
- [Decapitalize const](src/test/kotlin/com/igorwojda/string/decapitalizeconst/DecapitalizeConst.md)
59+
- [Longest word](src/test/kotlin/com/igorwojda/string/longestword/LongestWord.md)
5760

5861
**Apprentice**
59-
- [Is palindrome](app/src/test/java/com/igorwojda/string/ispalindrome/basic/IsPalindrome.md)
60-
- [Is tolerant palindrome](app/src/test/java/com/igorwojda/string/ispalindrome/tolerant/IsTolerantPalindrome.md)
61-
- [Is permutation palindrome](app/src/test/java/com/igorwojda/string/ispalindrome/permutation/IsPermutationPalindrome.md)
62-
- [Is anagram](app/src/test/java/com/igorwojda/string/isanagram/IsAnagram.md)
63-
- [Max occurring char](app/src/test/java/com/igorwojda/string/maxchar/MaxOccurrentChar.md)
64-
- [String reverse](app/src/test/java/com/igorwojda/string/reverse/Reverse.md)
65-
- [Find the vowels](app/src/test/java/com/igorwojda/string/vowels/Vowels.md)
66-
- [Int reverse](app/src/test/java/com/igorwojda/integer/reverse/Reverse.md)
67-
- [Pyramid generator](app/src/test/java/com/igorwojda/integer/pyramidgenerator/PyramidGenerator.md)
68-
- [Steps generator](app/src/test/java/com/igorwojda/integer/stepsgenerator/StepsGenerator.md)
69-
- [Fizz Buzz](app/src/test/java/com/igorwojda/integer/fizzbuzz/FizzBuzz.md)
70-
- [Caesar Cipher](app/src/test/java/com/igorwojda/string/caesarcipher/CaesarCipher.md)
71-
- [Has repeated char](app/src/test/java/com/igorwojda/string/hasrepeatedcharacter/HasRepeatedChar.md)
62+
63+
- [Is palindrome](src/test/kotlin/com/igorwojda/string/ispalindrome/basic/IsPalindrome.md)
64+
- [Is tolerant palindrome](src/test/kotlin/com/igorwojda/string/ispalindrome/tolerant/IsTolerantPalindrome.md)
65+
- [Is permutation palindrome](src/test/kotlin/com/igorwojda/string/ispalindrome/permutation/IsPermutationPalindrome.md)
66+
- [Is anagram](src/test/kotlin/com/igorwojda/string/isanagram/IsAnagram.md)
67+
- [Max occurring char](src/test/kotlin/com/igorwojda/string/maxchar/MaxOccurrentChar.md)
68+
- [String reverse](src/test/kotlin/com/igorwojda/string/reverse/Reverse.md)
69+
- [Find the vowels](src/test/kotlin/com/igorwojda/string/vowels/Vowels.md)
70+
- [Int reverse](src/test/kotlin/com/igorwojda/integer/reverse/Reverse.md)
71+
- [Pyramid generator](src/test/kotlin/com/igorwojda/integer/pyramidgenerator/PyramidGenerator.md)
72+
- [Steps generator](src/test/kotlin/com/igorwojda/integer/stepsgenerator/StepsGenerator.md)
73+
- [Fizz Buzz](src/test/kotlin/com/igorwojda/integer/fizzbuzz/FizzBuzz.md)
74+
- [Caesar Cipher](src/test/kotlin/com/igorwojda/string/caesarcipher/CaesarCipher.md)
75+
- [Has repeated char](src/test/kotlin/com/igorwojda/string/hasrepeatedcharacter/HasRepeatedChar.md)
7276

7377
**Warrior**
74-
- [Spiral matrix generator](app/src/test/java/com/igorwojda/integer/spiralmatrixgenerator/SpiralMatrixGenerator.md)
75-
- [Queue](app/src/test/java/com/igorwojda/queue/basic/Queue.md)
76-
- [Combine queues](app/src/test/java/com/igorwojda/queue/combine/Combine.md)
77-
- [Stack](app/src/test/java/com/igorwojda/stack/basic/Stack.md)
78-
- [Bubble sort](app/src/test/java/com/igorwojda/list/sort/bubblesort/BubbleSort.md)
79-
- [Selection sort](app/src/test/java/com/igorwojda/list/sort/selectionsort/SelectionSort.md)
80-
- [Square equals](app/src/test/java/com/igorwojda/list/squareequal/SquareEquals.md)
81-
- [Sum zero](app/src/test/java/com/igorwojda/list/sumzero/SumZero.md)
82-
- [Digit frequency](app/src/test/java/com/igorwojda/integer/digitfrequency/DigitFrequency.md)
83-
- [Get duplicated arguments](app/src/test/java/com/igorwojda/string/getduplicatedarguments/GetDuplicatedArguments.md)
84-
- [Find pair with target average](app/src/test/java/com/igorwojda/list/pairaverage/PairAverage.md)
85-
- [Binary search tree](app/src/test/java/com/igorwojda/tree/binarysearchtree/BinarySearchTree.md)
86-
- [Tree traversal](app/src/test/java/com/igorwojda/tree/classic/traversal/TreeTraversal.md)
87-
- [Tree level width](app/src/test/java/com/igorwojda/tree/classic/levelwidth/LevelWidth.md)
88-
- [Binary search tree (insert)](app/src/test/java/com/igorwojda/binarytree/insert/Insert.md)
89-
- [Binary search tree (validate)](app/src/test/java/com/igorwojda/binarytree/validate/Validate.md)
90-
- [Any callback](app/src/test/java/com/igorwojda/various/anycallback/AnyCallback.md)
91-
- [Flatten](app/src/test/java/com/igorwojda/list/flatten/Flatten.md)
92-
- [Binary search](app/src/test/java/com/igorwojda/list/search/binarysearch/BinarySearch.md)
93-
- [Surrounded letter](app/src/test/java/com/igorwojda/string/surroundedletter/SurroundedLetter.md)
94-
- [Insertion sort](app/src/test/java/com/igorwojda/list/sort/insertionsort/InsertionSort.md)
95-
- [Quick sort](app/src/test/java/com/igorwojda/list/sort/quicksort/QuickSort.md)
96-
- [Radix sort](app/src/test/java/com/igorwojda/list/sort/radixsort/RadixSort.md)
97-
- [Doubly linked list](app/src/test/java/com/igorwojda/linkedlist/doubly/base/DoublyLinkedList.md)
98-
- [Max binary heap](app/src/test/java/com/igorwojda/tree/heap/maxbinaryheap/MaxBinaryHeap.md)
78+
79+
- [Spiral matrix generator](src/test/kotlin/com/igorwojda/integer/spiralmatrixgenerator/SpiralMatrixGenerator.md)
80+
- [Queue](src/test/kotlin/com/igorwojda/queue/basic/Queue.md)
81+
- [Combine queues](src/test/kotlin/com/igorwojda/queue/combine/Combine.md)
82+
- [Stack](src/test/kotlin/com/igorwojda/stack/basic/Stack.md)
83+
- [Bubble sort](src/test/kotlin/com/igorwojda/list/sort/bubblesort/BubbleSort.md)
84+
- [Selection sort](src/test/kotlin/com/igorwojda/list/sort/selectionsort/SelectionSort.md)
85+
- [Square equals](src/test/kotlin/com/igorwojda/list/squareequal/SquareEquals.md)
86+
- [Sum zero](src/test/kotlin/com/igorwojda/list/sumzero/SumZero.md)
87+
- [Digit frequency](src/test/kotlin/com/igorwojda/integer/digitfrequency/DigitFrequency.md)
88+
- [Get duplicated arguments](src/test/kotlin/com/igorwojda/string/getduplicatedarguments/GetDuplicatedArguments.md)
89+
- [Find pair with target average](src/test/kotlin/com/igorwojda/list/pairaverage/PairAverage.md)
90+
- [Binary search tree](src/test/kotlin/com/igorwojda/tree/binarysearchtree/BinarySearchTree.md)
91+
- [Tree traversal](src/test/kotlin/com/igorwojda/tree/classic/traversal/TreeTraversal.md)
92+
- [Tree level width](src/test/kotlin/com/igorwojda/tree/classic/levelwidth/LevelWidth.md)
93+
- [Binary search tree (insert)](src/test/kotlin/com/igorwojda/binarytree/insert/Insert.md)
94+
- [Binary search tree (validate)](src/test/kotlin/com/igorwojda/binarytree/validate/Validate.md)
95+
- [Any callback](src/test/kotlin/com/igorwojda/various/anycallback/AnyCallback.md)
96+
- [Flatten](src/test/kotlin/com/igorwojda/list/flatten/Flatten.md)
97+
- [Binary search](src/test/kotlin/com/igorwojda/list/search/binarysearch/BinarySearch.md)
98+
- [Surrounded letter](src/test/kotlin/com/igorwojda/string/surroundedletter/SurroundedLetter.md)
99+
- [Insertion sort](src/test/kotlin/com/igorwojda/list/sort/insertionsort/InsertionSort.md)
100+
- [Quick sort](src/test/kotlin/com/igorwojda/list/sort/quicksort/QuickSort.md)
101+
- [Radix sort](src/test/kotlin/com/igorwojda/list/sort/radixsort/RadixSort.md)
102+
- [Doubly linked list](src/test/kotlin/com/igorwojda/linkedlist/doubly/base/DoublyLinkedList.md)
103+
- [Max binary heap](src/test/kotlin/com/igorwojda/tree/heap/maxbinaryheap/MaxBinaryHeap.md)
99104

100105
**Commander**
101-
- [List chunk](app/src/test/java/com/igorwojda/list/listchunk/ListChunk.md)
102-
- [Singly linked list](app/src/test/java/com/igorwojda/linkedlist/singly/base/SinglyLinkedList.md)
103-
- [Linked list midpoint](app/src/test/java/com/igorwojda/linkedlist/singly/midpoint/Midpoint.md)
104-
- [Circular check](app/src/test/java/com/igorwojda/linkedlist/singly/circularcheck/CircularCheck.md)
105-
- [Linked list take n-th element from last](app/src/test/java/com/igorwojda/linkedlist/singly/fromlast/FromLast.md)
106-
- [Is sub string](app/src/test/java/com/igorwojda/string/issubstring/IsSubstring.md)
107-
- [Merge sort](app/src/test/java/com/igorwojda/list/sort/mergesort/MergeSort.md)
108-
- [Fibonacci](app/src/test/java/com/igorwojda/integer/fibonacci/basic/Fibonacci.md)
109-
- [Fibonacci with recursive cache](app/src/test/java/com/igorwojda/integer/fibonacci/recursivecached/FibonacciRecursiveCached.md)
110-
- [Max sub list sum](app/src/test/java/com/igorwojda/list/maxsublistsum/MaxSubListSum.md)
111-
- [Min sub list length](app/src/test/java/com/igorwojda/list/minsublistlength/MinSubListLength.md)
112-
- [Subtract](app/src/test/java/com/igorwojda/list/subtract/Subtract.md)
106+
107+
- [List chunk](src/test/kotlin/com/igorwojda/list/listchunk/ListChunk.md)
108+
- [Singly linked list](src/test/kotlin/com/igorwojda/linkedlist/singly/base/SinglyLinkedList.md)
109+
- [Linked list midpoint](src/test/kotlin/com/igorwojda/linkedlist/singly/midpoint/Midpoint.md)
110+
- [Circular check](src/test/kotlin/com/igorwojda/linkedlist/singly/circularcheck/CircularCheck.md)
111+
- [Linked list take n-th element from last](src/test/kotlin/com/igorwojda/linkedlist/singly/fromlast/FromLast.md)
112+
- [Is sub string](src/test/kotlin/com/igorwojda/string/issubstring/IsSubstring.md)
113+
- [Merge sort](src/test/kotlin/com/igorwojda/list/sort/mergesort/MergeSort.md)
114+
- [Fibonacci](src/test/kotlin/com/igorwojda/integer/fibonacci/basic/Fibonacci.md)
115+
- [Fibonacci with recursive cache](src/test/kotlin/com/igorwojda/integer/fibonacci/recursivecached/FibonacciRecursiveCached.md)
116+
- [Max sub list sum](src/test/kotlin/com/igorwojda/list/maxsublistsum/MaxSubListSum.md)
117+
- [Min sub list length](src/test/kotlin/com/igorwojda/list/minsublistlength/MinSubListLength.md)
118+
- [Subtract](src/test/kotlin/com/igorwojda/list/subtract/Subtract.md)
113119

114120
# Useful links
115121

_config.yml

-1
This file was deleted.

app/.gitignore

-1
This file was deleted.

app/build.gradle

-38
This file was deleted.

app/proguard-rules.pro

-21
This file was deleted.

app/src/main/AndroidManifest.xml

-21
This file was deleted.

app/src/main/java/com/igorwojda/codingpuzzle/MainActivity.kt

-12
This file was deleted.

app/src/main/res/drawable-v24/ic_launcher_foreground.xml

-34
This file was deleted.

0 commit comments

Comments
 (0)