๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โŒจ๏ธ Language/swift

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค LV.0] ์ง„๋ฃŒ ์ˆœ์„œ ์ •ํ•˜๊ธฐ

by hyebin (Helia) 2022. 12. 27.
๋ฐ˜์‘ํ˜•

์ง„๋ฃŒ ์ˆœ์„œ ์ •ํ•˜๊ธฐ

๋ฌธ์ œ ์„ค๋ช…

์™ธ๊ณผ์˜์‚ฌ ๋จธ์“ฑ์ด๋Š” ์‘๊ธ‰์‹ค์— ์˜จ ํ™˜์ž์˜ ์‘๊ธ‰๋„๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ง„๋ฃŒ ์ˆœ์„œ๋ฅผ ์ •ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ •์ˆ˜ ๋ฐฐ์—ด emergency๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ ์‘๊ธ‰๋„๊ฐ€ ๋†’์€ ์ˆœ์„œ๋Œ€๋กœ ์ง„๋ฃŒ ์ˆœ์„œ๋ฅผ ์ •ํ•œ ๋ฐฐ์—ด์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”.

์ œํ•œ ์‚ฌํ•ญ

  • ์ค‘๋ณต๋œ ์›์†Œ๋Š” ์—†์Šต๋‹ˆ๋‹ค.
  • 1 ≤ emergency์˜ ๊ธธ์ด ≤ 10
  • 1 ≤ emergency์˜ ์›์†Œ ≤ 100

์ž…์ถœ๋ ฅ ์˜ˆ

emergency result
[3, 76, 24] [3, 1, 2]
[1, 2, 3, 4, 5, 6, 7] [7, 6, 5, 4, 3, 2, 1]
[30, 10, 23, 6, 100] [2, 4, 3, 5, 1]

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1

  • emergency๊ฐ€ [3, 76, 24]์ด๋ฏ€๋กœ ์‘๊ธ‰๋„์˜ ํฌ๊ธฐ ์ˆœ์„œ๋Œ€๋กœ ๋ฒˆํ˜ธ๋ฅผ ๋งค๊ธด [3, 1, 2]๋ฅผ return ํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #2

  • emergency๊ฐ€ [1, 2, 3, 4, 5, 6, 7]์ด๋ฏ€๋กœ ์‘๊ธ‰๋„์˜ ํฌ๊ธฐ ์ˆœ์„œ๋Œ€๋กœ ๋ฒˆํ˜ธ๋ฅผ ๋งค๊ธด [7, 6, 5, 4, 3, 2, 1]๋ฅผ return ํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #3

  • emergency๊ฐ€ [30, 10, 23, 6, 100]์ด๋ฏ€๋กœ ์‘๊ธ‰๋„์˜ ํฌ๊ธฐ ์ˆœ์„œ๋Œ€๋กœ ๋ฒˆํ˜ธ๋ฅผ ๋งค๊ธด [2, 4, 3, 5, 1]๋ฅผ return ํ•ฉ๋‹ˆ๋‹ค.

์ œ์ถœ

import Foundation

func solution(_ emergency:[Int]) -> [Int] {
    var answer: [Int] = []

    for tmp in emergency {
        answer.append(emergency.filter { $0 > tmp }.count + 1)
    }

    return answer
}
filter ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด์˜ ์š”์†Œ๋“ค ์ค‘์—์„œ ํ˜„์žฌ์˜ ์š”์†Œ๋ณด๋‹ค ํฐ ์š”์†Œ๋“ค์˜ ์ˆ˜๋ฅผ ๊ตฌํ•œ ํ›„ ๋ฐฐ์—ด์— ๋„ฃ์–ด ๋ฐ˜ํ™˜

๋‹ค๋ฅธ ํ’€์ด

import Foundation

func solution(_ emergency: [Int]) -> [Int] { 
  return emergency.map { emergency.sorted(by: >).firstIndex(of: $0)! + 1 } 
}
map ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด์„ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ด ๋ช‡ ๋ฒˆ์งธ ์ธ๋ฑ์Šค๋ฅผ ๊ฐ–๋Š”์ง€ ๊ณ„์‚ฐํ•˜์—ฌ ๋ฐ˜ํ™˜
๋ฐ˜์‘ํ˜•