baekjoon: 2750. 수 정렬하기

kldaji·2021년 12월 27일
1

baekjoon

목록 보기
1/5

문제링크

  • 시간제한 : 1초 (약 1억개의 연산)
  • n 범위 : 1 ~ 1000
  • O(N^2) : 1,000,000

Selection Sort

import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter

fun main() {
    val br = BufferedReader(InputStreamReader(System.`in`))
    val bw = BufferedWriter(OutputStreamWriter(System.out))
    // n : 1 ~ 1000
    val n = br.readLine().toInt()
    val nums = mutableListOf<Int>()
    for (i in 0 until n) {
        nums.add(br.readLine().toInt())
    }
    // selection sort
    for (i in 0 until n) {
    	// 숫자 최대값 : 1000
        var minValue = 1001
        var minIndex = 0
        for (j in i until n) {
            if (minValue > nums[j]) {
                minValue = nums[j]
                minIndex = j
            }
        }
        val temp = nums[i]
        nums[i] = minValue
        nums[minIndex] = temp
    }
    nums.forEach { bw.write("$it\n") }
    br.close()
    bw.close()
}

Insertion Sort

import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter

fun main() {
    val br = BufferedReader(InputStreamReader(System.`in`))
    val bw = BufferedWriter(OutputStreamWriter(System.out))
    // n : 1 ~ 1000
    val n = br.readLine().toInt()
    val nums = mutableListOf<Int>()
    for (i in 0 until n) {
        nums.add(br.readLine().toInt())
    }
    // insertion sort
    for (i in 0 until n - 1) {
        var j = i
        while (j >= 0 && nums[j] > nums[j + 1]) {
            val temp = nums[j]
            nums[j] = nums[j + 1]
            nums[j + 1] = temp
            j--
        }
    }
    nums.forEach { bw.write("$it\n") }
    br.close()
    bw.close()
}

Bubble Sort

import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter

fun main() {
    val br = BufferedReader(InputStreamReader(System.`in`))
    val bw = BufferedWriter(OutputStreamWriter(System.out))
    // n : 1 ~ 1000
    val n = br.readLine().toInt()
    val nums = mutableListOf<Int>()
    for (i in 0 until n) {
        nums.add(br.readLine().toInt())
    }
    // bubble sort
    for (i in 0 until n) {
        for (j in 0 until n - 1 - i) {
            if (nums[j] > nums[j + 1]) {
                val temp = nums[j]
                nums[j] = nums[j + 1]
                nums[j + 1] = temp
            }
        }
    }
    nums.forEach { bw.write("$it\n") }
    br.close()
    bw.close()
}
profile
다양한 관점에서 다양한 방법으로 문제 해결을 지향하는 안드로이드 개발자 입니다.

0개의 댓글