Kotlin coding test course, line ordering

Coding tests are one of the important processes in modern software development. In particular, many companies conduct coding tests to evaluate algorithm and problem-solving abilities. In this course, we will cover the topic of ‘Sorting’, and through this, we will deeply understand the algorithm problem-solving process using the Kotlin language.

Problem Description

A series of students must line up according to their height. Each student has their own height, and the line should be arranged based on this height. You are required to write a program that sorts these students in ascending order of their heights when their height information is given.

Input Format

  • First line: Number of students N (1 ≤ N ≤ 100,000)
  • Next N lines: Each student’s height H (1 ≤ H ≤ 2,000)

Output Format

Print each student’s height in ascending order, one per line.

Example Input

        5
        140
        120
        150
        130
        110
        

Example Output

        110
        120
        130
        140
        150
        

Problem Solving Strategy

This problem is about sorting students’ heights, and can be solved through sorting algorithms. A hint is to use Kotlin’s sort() function or sorted() function to solve the problem. Additionally, you should consider the time complexity of various sorting algorithms to choose the optimal method.

Step 1: Collecting Input Data

We will use standard input to collect the number of students and each student’s height. Kotlin supports concise code writing, allowing us to do this efficiently.

Step 2: Sorting Data

The sort() function is the easiest and most convenient method to apply for sorting. This function internally uses the Timsort algorithm and has an average performance of O(N log N). The code below describes how to sort students’ heights using this function.

Step 3: Outputting Results

We will go through the process of printing each sorted result line by line. This can be easily implemented using Kotlin’s looping constructs.

Kotlin Code Implementation

The following code is based on the steps described above for a Kotlin program.


fun main() {
    val n = readLine()!!.toInt()  // Input number of students from the first line
    val heights = mutableListOf()  // List to store students' heights

    // Receive height inputs
    for (i in 1..n) {
        heights.add(readLine()!!.toInt())
    }

    // Sort heights
    heights.sort()

    // Output sorted results
    heights.forEach { height -> 
        println(height) 
    }
}
        

Code Explanation

  • readLine()!!.toInt(): Reads a value from standard input and converts it to an integer.
  • mutableListOf(): Creates a mutable list to store students’ heights.
  • heights.sort(): Sorts the list.
  • heights.forEach(): A loop to print the sorted results.

Results and Performance Analysis

The time complexity of this code is O(N log N), making it efficient for handling large numbers of students. Additionally, the code’s readability is high, making maintenance easier.

Test Cases

Through various inputs, the stability of the program can be verified. For example, consider adding test cases for students with the same height or those sorted in reverse order.

Conclusion

In this course, we explored how to solve the sorting problem using Kotlin. I hope this has provided an opportunity to further develop your algorithm problem-solving skills through the processes of input handling, data sorting, and result output. The next course will cover more challenging problems.

If you found this article helpful, please share the course with your friends. Engage in solving various algorithm problems together to enhance your skills.