## What is Kattis?

The **Kattis Problem Archive** is a website with hundreds of programming questions for you to try. Whether you’re a beginner or a seasoned programmer, you’ll find a wide range of questions that’ll give you a good challenge!

You can find Kattis here: https://open.kattis.com

## What is this page?

I use Kattis a fair bit. Whether to give my students some practice, or even as a challenge for myself once in a while.

This page is a curated list of some of the questions I’ve found useful in one way or another. If you’ve found other fun and interesting questions you want me to spotlight here, send me an email at hello@nerdfirst.net!

Hope you find this list useful!

## Beginner-Level Questions

The questions in this table are basic questions for you to exercise your understanding and to apply your skills to problems. All because this section is labelled “Beginner-Level” doesn’t mean these questions are easy! Read the questions carefully and make sure you produce exactly what is required of you. No more no less!

Question Name | Difficulty | Skills Needed | Good For | Updated (On this List) |
---|---|---|---|---|

Mixed Fractions | 1.4 | Modulo Operator | Programming math | 9-Sep-2019 |

Hissing Microphone | 1.3 | String Search and Manipulation | First test of Kattis and to exercise string manipulation skills | 9-Sep-2019 |

License to Launch | 1.4 | Array manipulations in a loop | Min-finding algorithms | 9-Sep-2019 |

Harshad Numbers | 1.4 | Programming math and loops | Algorithm design and programming math | 9-Sep-2019 |

Seven Wonders | 1.4 | String manipulation | Algorithm design based on scenario | 31-Dec-2019 |

Soylent | 1.6 | Programming math | Algorithm design based on scenario | 9-Sep-2019 |

Heart Rate | 1.3 | Programming math | Algorithm design based on scenario | 9-Sep-2019 |

Cetiri | 1.8 | Programming math and sorting algorithms | Algorithm design based on scenario | 14-Sep-2019 |

Cold-Puter Science | 1.3 | Looping with nested conditionals | Nested Structures | 9-Sep-2019 |

Broken Swords | 1.8 | Programming Math, Looping with nested Conditionals | Nested Structures, Algorithm Design | 26-Feb-2020 |

Line Them Up | 1.6 | Loops and Sorting | Designing simple algorithms with branching logic | 9-Sep-2019 |

Boat Parts | 1.6 | Sequence-Style Data Structures | Storing a sequence of items | 9-Sep-2019 |

Hitting Targets | 1.8 | Programming Math and Looping | Data organization and retrieval | 1-Jan-2020 |

Different Distances | 1.6 | Loops, Math Functions | Exercising understanding of Math library | 20-Mar-2020 |

Sum of the Others | 1.9 | Loops, Sequences | Design of elegant solutions | 20-Mar-2020 |

Relocation | 1.5 | Loops, Sequence Data Structures, If-Statements | Building programs with a "command interface" | 09-Dec-2022 |

I've Been Everywhere, Man | 1.4 | Loops, Sequences, Data Structures | Data de-duplication | 09-Dec-2022 |

## Intermediate Questions

These questions require you to strategize and think carefully about the data structures and algorithms you use. Go slow, and plan before starting!

Question Name | Difficulty | Skills Needed | Good For | Updated (On this List) |
---|---|---|---|---|

Patuljci | 1.8 | Data organization and manipulation | Algorithm development | 23-Mar-2020 |

Oktalni | 1.8 | Looping, String manipulation and conditionals | - | 1-Jan-2020 |

What does the fox say? | 2.0 | String manipulation, structuring data for reuse | - | 23-Mar-2020 |

Luhn's Checksum Problem | 1.5 | Loops and Programming Math | Working with slightly larger-scale algorithms | 9-Sep-2019 |

Interpreter | 3.6 | Organizing lists of information and accessing them appropriately | Reminiscent of the Little Man Computer. Good for practicing computer organization skills. | 23-Mar-2020 |

Scaling Recipes | 1.9 | Looping with Arrays | Working with multiple loops and data structures | 9-Sep-2019 |

Bus Numbers | 2.3 | Loops, sequences | Strategic use of if-statements alongside loops | 23-Mar-2020 |

Another Brick in the Wall | 1.8 | Nested Loops | Exercising two-dimensional computing math | 9-Sep-2019 |

Bacon, Eggs and Spam | 1.6 | Sequence-Style Data Structures | Data organization and retrieval | 20-Mar-2020 |

Grandpa Bernie | 3.2 | Storing and retrieving data in sequences | Data storage, organization and retrieval | 23-Mar-2020 |

Goldbach's Conjecture | 2.8 | Looping, Working with Primes | Managing complexity in programs | 23-Mar-2020 |

Backspace | 2.5 | Looping, Strings | Choosing efficient data structures & methods to manipulate them | 09-Dec-2022 |

T9 Spelling | 1.6 | Loops, Basic Data Structures | Reasoning about pre-processing before solving the problem | 09-Dec-2022 |

Weak Vertices | 1.5 | Graph Data Structures & Algorithms | Practice basic graph representation and manipulation | 09-Dec-2022 |

## Advanced Questions

The questions here require either deeper conceptual understanding, require complex applications of specialized data structures and algorithms, or have timing constraints requiring optimized algorithms.

Question Name | Difficulty | Skills Needed | Good For | Updated (On this List) |
---|---|---|---|---|

A Towering Problem | 2.1 | Data storage, sorting and manipulation | Developing algorithms from a story | 23-Mar-2020 |

Get to Work | 2.2 | Sequence data structures | Data organization and representation | 23-Mar-2020 |

Delimiter Soup | 1.9 | Appropriate patterns for bracket matching | Applying concepts in bracket matching; Considering edge cases | 23-Mar-2020 |

Touchscreen Keyboard | 1.9 | Sequence data structures; Sorting algorithms | Managing complexity of larger programs | 23-Mar-2020 |

FBI Universal Control Numbers | 2.2 | Number systems, Data Structures for efficient lookup | Managing complexity of larger programs | 23-Mar-2020 |

Pizza Hawaii | 2.6 | Data storage and lookup | Performing appropriate cross-referencing across multiple data structures | 23-Mar-2020 |