Swift Data Structure And Algorithm/Sort Algorithm

K๋ฒˆ์งธ ํฐ ์ˆ˜ ์ฐพ๊ธฐ

youngjaeLee1026 2022. 2. 28. 20:38

1. ๋ฌธ์ œ

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2022-02-28 20 17 02

2. ์ž…์ถœ๋ ฅ

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2022-02-28 20 17 04

3. ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2022-02-28 20 17 08

4. ๋ฌธ์ œ ์„ค๊ณ„

  1. ๋ฌธ์ œ์˜ ํฌ๊ธฐ๊ฐ€ 100,000 ์ด๋ฏ€๋กœ O(n^2)์œผ๋กœ๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†์Œ.
  2. ๋”ฐ๋ผ์„œ, ์‚ฝ์ž… ์ •๋ ฌ, ์„ ํƒ ์ •๋ ฌ, ๋ฒ„๋ธ” ์ •๋ ฌ ๋ณด๋‹ค๋Š” ํ•ฉ๋ณ‘์ •๋ ฌ, ํ€ต ์ •๋ ฌ ๋“ฑ์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Œ
  3. ํ•˜์ง€๋งŒ ๋‚ด์žฅ ํ•จ์ˆ˜์ธ sort() ํ˜น์€ sorted()๊ฐ€ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘์—๋Š” ๊ฐ€์žฅ ๋น ๋ฅด๋ฏ€๋กœ ํ•ด๋‹น ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•จ
  4. ์ž…๋ ฅ ๋ฐ›์€ ์ •๋ ฌ์„ sorted() ํ•จ์ˆ˜๋กœ ์ •๋ ฌ ํ›„ k = 1์ผ ๊ฒฝ์šฐ ์ œ์ผ ํฐ ์›์†Œ ์ด๋ฏ€๋กœ ๊ฑฐ๊พธ๋กœ ์ธ๋ฑ์Šค๋ฅผ ์ ‘๊ทผ ํ•จ์œผ๋กœ์จ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•จ

5. ์ „์ฒด ์ฝ”๋“œ

//
//  main.swift
//  Knumber
//
//  Created by ์ด์˜์žฌ on 2022/02/28.
//MARK: - k๋ฒˆ์งธ ํฐ ์ˆ˜ ์ฐพ๊ธฐ

//MARK: - Framework
import Foundation

//MARK: - Function
func solution() -> Void {
    //MARK: - input
    guard let input = readLine()?.components(separatedBy: " ") else { return }
    guard let inputArray = readLine()?.components(separatedBy: " ") else { return }
    
    let N: Int = input.map { Int($0) }[0] ?? 0
    let k: Int = input.map { Int($0) }[1] ?? 0
    
    //MARK: - process
    let sortedArray: Array<Int> = inputArray.map { Int($0) ?? 0 }.sorted { $0 < $1 }
    let result: Int = sortedArray[N - k]
    
    //MARK: - output
    print(result)
}
solution()

์ „์ฒด์ฝ”๋“œ๋Š” ์—ฌ๊ธฐ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.