โŒจ๏ธ Language/swift

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

hyebin (Helia) 2023. 1. 5. 15:05
๋ฐ˜์‘ํ˜•

๋“ฑ์ˆ˜ ๋งค๊ธฐ๊ธฐ

๋ฌธ์ œ ์„ค๋ช…

์˜์–ด ์ ์ˆ˜์™€ ์ˆ˜ํ•™ ์ ์ˆ˜์˜ ํ‰๊ท  ์ ์ˆ˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•™์ƒ๋“ค์˜ ๋“ฑ์ˆ˜๋ฅผ ๋งค๊ธฐ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์˜์–ด ์ ์ˆ˜์™€ ์ˆ˜ํ•™ ์ ์ˆ˜๋ฅผ ๋‹ด์€ 2์ฐจ์› ์ •์ˆ˜ ๋ฐฐ์—ด score๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, ์˜์–ด ์ ์ˆ˜์™€ ์ˆ˜ํ•™ ์ ์ˆ˜์˜ ํ‰๊ท ์„ ๊ธฐ์ค€์œผ๋กœ ๋งค๊ธด ๋“ฑ์ˆ˜๋ฅผ ๋‹ด์€ ๋ฐฐ์—ด์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”.

์ œํ•œ ์‚ฌํ•ญ

  • 0 ≤ score [0], score [1] ≤ 100
  • 1 ≤ score์˜ ๊ธธ์ด ≤ 10
  • score์˜ ์›์†Œ ๊ธธ์ด๋Š” 2์ž…๋‹ˆ๋‹ค.
  • score๋Š” ์ค‘๋ณต๋œ ์›์†Œ๋ฅผ ๊ฐ–์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

score result
[[80, 70], [90, 50], [40, 70], [50, 80]] [1, 2, 4, 3]
[[80, 70], [70, 80], [30, 50], [90, 100], [100, 90], [100, 100], [10, 30]] [4, 4, 6, 2, 2, 1, 7]

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

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

  • ํ‰๊ท ์€ ๊ฐ๊ฐ 75, 70, 55, 65 ์ด๋ฏ€๋กœ ๋“ฑ์ˆ˜๋ฅผ ๋งค๊ฒจ [1, 2, 4, 3]์„ return ํ•ฉ๋‹ˆ๋‹ค.

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

  • ํ‰๊ท ์€ ๊ฐ๊ฐ 75, 75, 40, 95, 95, 100, 20 ์ด๋ฏ€๋กœ [4, 4, 6, 2, 2, 1, 7]์„ return ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ณต๋™ 2๋“ฑ์ด ๋‘ ๋ช…, ๊ณต๋™ 4๋“ฑ์ด 2๋ช… ์ด๋ฏ€๋กœ 3๋“ฑ๊ณผ 5๋“ฑ์€ ์—†์Šต๋‹ˆ๋‹ค.

์ œ์ถœ

import Foundation

func solution(_ score:[[Int]]) -> [Int] {
    var avg = [Int]()
    var answer = [Int]()
    for s in score{
        avg.append(s[0]+s[1])
    }
    
    for i in avg{
        answer.append(avg.filter{$0 > i}.count + 1)
    }
    
    return answer
}
๋‘ ๊ณผ๋ชฉ์˜ ์ ์ˆ˜๋ฅผ ๋”ํ•ด avg ๋ฐฐ์—ด์— ์ €์žฅํ•œ๋‹ค.
avg ์š”์†Œ๋“ค์„ filter ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž๊ธฐ ์ž์‹ ๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ๋ฅผ ๊ตฌํ•ด answer ๋ฐฐ์—ด์— ์ €์žฅํ•œ๋‹ค.

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

import Foundation

func solution(_ score: [[Int]]) -> [Int] {
    return score.map { Double($0.reduce(0, +)) / Double($0.count) }.map { score.map { Double($0.reduce(0, +)) / Double($0.count) }.sorted(by: >).firstIndex(of: $0)! + 1 }
}

 

๋ฐ˜์‘ํ˜•