๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
3๏ธโƒฃ Swift/Problem Solving

[Swift Algorithm] K๋ฒˆ์งธ ์ˆ˜ Programmers(Lv.1)

by seolhee2750 2021. 6. 18.
๋ฌธ์ œ ์„ค๋ช…

๋ฐฐ์—ด array์˜ i๋ฒˆ์งธ ์ˆซ์ž๋ถ€ํ„ฐ j๋ฒˆ์งธ ์ˆซ์ž๊นŒ์ง€ ์ž๋ฅด๊ณ  ์ •๋ ฌํ–ˆ์„ ๋•Œ, k๋ฒˆ์งธ์— ์žˆ๋Š” ์ˆ˜๋ฅผ ๊ตฌํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด array๊ฐ€ [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3์ด๋ผ๋ฉด

  1. array์˜ 2๋ฒˆ์งธ๋ถ€ํ„ฐ 5๋ฒˆ์งธ๊นŒ์ง€ ์ž๋ฅด๋ฉด [5, 2, 6, 3]์ž…๋‹ˆ๋‹ค.
  2. 1์—์„œ ๋‚˜์˜จ ๋ฐฐ์—ด์„ ์ •๋ ฌํ•˜๋ฉด [2, 3, 5, 6]์ž…๋‹ˆ๋‹ค.
  3. 2์—์„œ ๋‚˜์˜จ ๋ฐฐ์—ด์˜ 3๋ฒˆ์งธ ์ˆซ์ž๋Š” 5์ž…๋‹ˆ๋‹ค.

๋ฐฐ์—ด array, [i, j, k]๋ฅผ ์›์†Œ๋กœ ๊ฐ€์ง„ 2์ฐจ์› ๋ฐฐ์—ด commands๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, commands์˜ ๋ชจ๋“  ์›์†Œ์— ๋Œ€ํ•ด ์•ž์„œ ์„ค๋ช…ํ•œ ์—ฐ์‚ฐ์„ ์ ์šฉํ–ˆ์„ ๋•Œ ๋‚˜์˜จ ๊ฒฐ๊ณผ๋ฅผ ๋ฐฐ์—ด์— ๋‹ด์•„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

 

์ œํ•œ ์กฐ๊ฑด
  • array์˜ ๊ธธ์ด๋Š” 1 ์ด์ƒ 100 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • array์˜ ๊ฐ ์›์†Œ๋Š” 1 ์ด์ƒ 100 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • commands์˜ ๊ธธ์ด๋Š” 1 ์ด์ƒ 50 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • commands์˜ ๊ฐ ์›์†Œ๋Š” ๊ธธ์ด๊ฐ€ 3์ž…๋‹ˆ๋‹ค.

 

์ž…์ถœ๋ ฅ ์˜ˆ
array commands return
[1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3]

 

๋‚ด ๋ฌธ์ œ ํ’€์ด
func solution(_ array:[Int], _ commands:[[Int]]) -> [Int] {
    var result = [Int]()
    
    for i in 0..<commands.count {
        var temp = [Int]()
        
        for j in (commands[i][0]-1)...(commands[i][1]-1) {
            temp.append(array[j])
        }
        
        temp = temp.sorted()
        result.append(temp[commands[i][2]-1])
    }
    
    return result
}
  • for๋ฌธ ์•ˆ์—์„œ ํ•œ ํ–‰๋งˆ๋‹ค temp ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด ์ •๋ ฌ, k๋ฒˆ์งธ ์ˆ˜๋ฅผ result์— ์ถ”๊ฐ€ํ•ด์ฃผ์—ˆ๋‹ค.

 

์ธ์ƒ์ ์ธ ํ’€์ด
import Foundation

func solution(_ array:[Int], _ commands:[[Int]]) -> [Int] {
        return commands.map({(key) in
            return array[(key[0]-1)...(key[1]-1)].sorted()[key[2]-1]
        })
}
  • map์„ ์ด์šฉํ•˜์—ฌ ๋ฐ”๋กœ return๋ฌธ์—์„œ ๋ฐฐ์—ด์˜ ์ƒ์„ฑ, ์ •๋ ฌ, k๋ฒˆ์งธ ์ˆ˜ ๊ตฌํ•˜๊ธฐ ๊นŒ์ง€ ํ•œ ๋ฒˆ์— ํ•ด์ฃผ์—ˆ๋‹ค.

 

๐Ÿ’ก ํ”ผ๋“œ๋ฐฑ
  • ์–ด๋Š ํ’€์ด์—๋‚˜ map์„ ์ ์ ˆํžˆ ์‚ฌ์šฉํ•˜๋ฉด ํฐ ํšจ๊ณผ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋“ฏ ํ•˜๋‹ค,,
  • ์ธ์ƒ์ ์ธ ํ’€์ด๋Š” ์ดํ•ด๋Š” ๊ฐ€์ง€๋งŒ ์•„์ง ์ €๋ ‡๊ฒŒ๊นŒ์ง€ map์„ ์‚ฌ์šฉํ•˜๊ธฐ๋Š” ์–ด๋ ค์›Œ์„œ ์—ฐ์Šต์ด ํ•„์š”ํ•  ๋“ฏ ํ•˜๋‹ค.ใ…œ

 


 

๋ฌธ์ œ

https://programmers.co.kr/learn/courses/30/lessons/42748

๋Œ“๊ธ€