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

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค LV.1] ๋ชจ์˜๊ณ ์‚ฌ

by hyebin (Helia) 2023. 2. 22.
๋ฐ˜์‘ํ˜•
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค LV.1 ๋ชจ์Œ

๋ชจ์˜๊ณ ์‚ฌ

๋ฌธ์ œ ์„ค๋ช…

์ˆ˜ํฌ์ž๋Š” ์ˆ˜ํ•™์„ ํฌ๊ธฐํ•œ ์‚ฌ๋žŒ์˜ ์ค€๋ง์ž…๋‹ˆ๋‹ค. ์ˆ˜ํฌ์ž ์‚ผ์ธ๋ฐฉ์€ ๋ชจ์˜๊ณ ์‚ฌ์— ์ˆ˜ํ•™ ๋ฌธ์ œ๋ฅผ ์ „๋ถ€ ์ฐ์œผ๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜ํฌ์ž๋Š” 1๋ฒˆ ๋ฌธ์ œ๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ๋ฌธ์ œ๊นŒ์ง€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฐ์Šต๋‹ˆ๋‹ค.

1๋ฒˆ ์ˆ˜ํฌ์ž๊ฐ€ ์ฐ๋Š” ๋ฐฉ์‹: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ...
2๋ฒˆ ์ˆ˜ํฌ์ž๊ฐ€ ์ฐ๋Š” ๋ฐฉ์‹: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ...
3๋ฒˆ ์ˆ˜ํฌ์ž๊ฐ€ ์ฐ๋Š” ๋ฐฉ์‹: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ...

1๋ฒˆ ๋ฌธ์ œ๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ๋ฌธ์ œ๊นŒ์ง€์˜ ์ •๋‹ต์ด ์ˆœ์„œ๋Œ€๋กœ ๋“ค์€ ๋ฐฐ์—ด answers๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๊ฐ€์žฅ ๋งŽ์€ ๋ฌธ์ œ๋ฅผ ๋งžํžŒ ์‚ฌ๋žŒ์ด ๋ˆ„๊ตฌ์ธ์ง€ ๋ฐฐ์—ด์— ๋‹ด์•„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด ์ฃผ์„ธ์š”.

์ œํ•œ ์‚ฌํ•ญ

  • ์‹œํ—˜์€ ์ตœ๋Œ€ 10,000 ๋ฌธ์ œ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฌธ์ œ์˜ ์ •๋‹ต์€ 1, 2, 3, 4, 5์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.
  • ๊ฐ€์žฅ ๋†’์€ ์ ์ˆ˜๋ฅผ ๋ฐ›์€ ์‚ฌ๋žŒ์ด ์—ฌ๋Ÿฟ์ผ ๊ฒฝ์šฐ, return ํ•˜๋Š” ๊ฐ’์„ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ•ด ์ฃผ์„ธ์š”.

์ž…์ถœ๋ ฅ ์˜ˆ

answers return
[1,2,3,4,5] [1]
[1,3,2,4,2] [1,2,3]

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

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

  • ์ˆ˜ํฌ์ž 1์€ ๋ชจ๋“  ๋ฌธ์ œ๋ฅผ ๋งžํ˜”์Šต๋‹ˆ๋‹ค.
  • ์ˆ˜ํฌ์ž 2๋Š” ๋ชจ๋“  ๋ฌธ์ œ๋ฅผ ํ‹€๋ ธ์Šต๋‹ˆ๋‹ค.
  • ์ˆ˜ํฌ์ž 3์€ ๋ชจ๋“  ๋ฌธ์ œ๋ฅผ ํ‹€๋ ธ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ๊ฐ€์žฅ ๋ฌธ์ œ๋ฅผ ๋งŽ์ด ๋งžํžŒ ์‚ฌ๋žŒ์€ ์ˆ˜ํฌ์ž 1์ž…๋‹ˆ๋‹ค.

 

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

  • ๋ชจ๋“  ์‚ฌ๋žŒ์ด 2๋ฌธ์ œ์”ฉ์„ ๋งž์ท„์Šต๋‹ˆ๋‹ค.

์ œ์ถœ

import Foundation

func solution(_ answers:[Int]) -> [Int] {
    let s1 = [1,2,3,4,5]
    let s2 = [2,1,2,3,2,4,2,5]
    let s3 = [3,3,1,1,2,2,4,4,5,5]
    var score = [1:0, 2:0, 3:0]
    
    for i in 0..<answers.count{
        if(answers[i] == s1[i%5]){score[1]! += 1}
        if(answers[i] == s2[i%8]){score[2]! += 1}
        if(answers[i] == s3[i%10]){score[3]! += 1}
    }
    
    let max = score.values.max()
    return score.filter{$0.value == max}.keys.sorted(by: <)
}
๊ฐ๊ฐ์˜ ์ˆ˜ํฌ์ž๊ฐ€ ์ฐ๋Š” ๋ฐฉ์‹์„ ๊ฐ๊ฐ ๋ฐฐ์—ด๋กœ ์ƒ์„ฑํ•œ๋‹ค.
๊ฐ ์ˆ˜ํฌ์ž์˜ ์ ์ˆ˜๋ฅผ ๋‹ด์„ ๋”•์…”๋„ˆ๋ฆฌ score๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

1๋ฒˆ ํ•™์ƒ์€ 5๊ฐœ์˜ ์ˆซ์ž๊ฐ€ ๋ฐ˜๋ณต๋˜๊ธฐ ๋•Œ๋ฌธ์— (ํ˜„์žฌ ์ธ๋ฑ์Šค%5)๊ฐ€ answer๋ฐฐ์—ด์˜ ์š”์†Œ์™€ ๊ฐ™๋‹ค๋ฉด 1๋ฒˆ ํ•™์ƒ์˜ ์ ์ˆ˜๋ฅผ 1 ์ฆ๊ฐ€ํ•œ๋‹ค.
2๋ฒˆ ํ•™์ƒ์€ 8๊ฐœ์˜ ์ˆซ์ž๊ฐ€ ๋ฐ˜๋ณต๋˜๊ธฐ ๋•Œ๋ฌธ์— (ํ˜„์žฌ ์ธ๋ฑ์Šค%8)๊ฐ€ answer๋ฐฐ์—ด์˜ ์š”์†Œ์™€ ๊ฐ™๋‹ค๋ฉด 2๋ฒˆ ํ•™์ƒ์˜ ์ ์ˆ˜๋ฅผ 1 ์ฆ๊ฐ€ํ•œ๋‹ค.
3๋ฒˆ ํ•™์ƒ์€ 10๊ฐœ์˜ ์ˆซ์ž๊ฐ€ ๋ฐ˜๋ณต๋˜๊ธฐ ๋•Œ๋ฌธ์— (ํ˜„์žฌ ์ธ๋ฑ์Šค%10)๊ฐ€ answer๋ฐฐ์—ด์˜ ์š”์†Œ์™€ ๊ฐ™๋‹ค๋ฉด 3๋ฒˆ ํ•™์ƒ์˜ ์ ์ˆ˜๋ฅผ 1 ์ฆ๊ฐ€ํ•œ๋‹ค.

score์—์„œ ๊ฐ€์žฅ ํฐ value๊ฐ’์„ ๊ตฌํ•ด max ์ƒ์ˆ˜์— ์ €์žฅํ•œ๋‹ค.
filter ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ score์—์„œ value๊ฐ€ max์™€ ๋™์ผํ•œ key ๊ฐ’๋“ค์„ ๊ตฌํ•œ ํ›„ ์ •๋ ฌํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
๋ฐ˜์‘ํ˜•