๋ฌธ์ ์ค๋ช
์ํฌ์๋ ์ํ์ ํฌ๊ธฐํ ์ฌ๋์ ์ค๋ง์ ๋๋ค. ์ํฌ์ ์ผ์ธ๋ฐฉ์ ๋ชจ์๊ณ ์ฌ์ ์ํ ๋ฌธ์ ๋ฅผ ์ ๋ถ ์ฐ์ผ๋ ค ํฉ๋๋ค. ์ํฌ์๋ 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] |
๋ด ๋ฌธ์ ํ์ด
func solution(_ answers:[Int]) -> [Int] {
let stu1 = [1, 2, 3, 4, 5]
let stu2 = [2, 1, 2, 3, 2, 4, 2, 5]
let stu3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]
var count = [0, 0, 0]
var result = [Int]()
for i in 0..<answers.count {
if answers[i] == stu1[i % 5] {
count[0] += 1
}
if answers[i] == stu2[i % 8] {
count[1] += 1
}
if answers[i] == stu3[i % 10] {
count[2] += 1
}
}
for i in 0..<3 {
if count.max() == count[i] {
result.append(i+1)
}
}
return result.sorted()
}
- ๋จผ์ ์ธ ํ์์ ์ฐ๊ธฐ ํจํด์ ๋ฐฐ์ด๋ก ์์ฑํด์ฃผ์๋ค.
- ๋ต์ ๋ฐฐ์ด์ ๊ธธ์ด๋งํผ ์ธ ํ์์ ํจํด์ ๋๋ ค์ฃผ๋ฉฐ ์ ๋ต์ด ๋ง๋ ํ์๋ฅผ count์ ์ถ๊ฐํด์ฃผ์๋ค.
- for๋ฌธ์ผ๋ก ์ ์ผ ๋ง์ด ๋ง์ถ ์ฌ๋์ด ๋๊ตฌ์ธ์ง, ์ฌ๋ฌ๋ช ์ด๋ผ๋ฉด ๋ ๋๊ตฌ์ธ์ง,, result์ ์ถ๊ฐํด์ฃผ์๋ค.
์ธ์์ ์ธ ํ์ด
import Foundation
func solution(_ answers:[Int]) -> [Int] {
let answer = (
a: [1, 2, 3, 4, 5], // index % 5
b: [2, 1, 2, 3, 2, 4, 2, 5], // index % 8
c: [3, 3, 1, 1, 2, 2, 4, 4, 5, 5] // index % 10
)
var point = [1:0, 2:0, 3:0]
for (i, v) in answers.enumerated() {
if v == answer.a[i % 5] { point[1] = point[1]! + 1 }
if v == answer.b[i % 8] { point[2] = point[2]! + 1 }
if v == answer.c[i % 10] { point[3] = point[3]! + 1 }
}
return point.sorted{ $0.key < $1.key }.filter{ $0.value == point.values.max() }.map{ $0.key }
}
- dictionary๋ฅผ ์ฌ์ฉํ์ฌ ํ์ดํ๋ค.
- filter๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ผ ๋ง์ด ๋ง์ถ ํ์์ ๊ตฌํด์ฃผ์๋ค.
๐ก ํผ๋๋ฐฑ
- ๋์ ๋๋ฆฌ๋ฅผ ํ ๋ฒ๋ ์ฌ์ฉํด ๋ณธ์ ์ด ์์ด์ ์๊ฐํ์ง ๋ชปํ ํ์ด์ธ๋ฐ, ๊ณต๋ถํด๋ด์ผ ํ ๊ฒ ๊ฐ๋ค.!
- ๋์ ๋๋ฆฌ์ ๊ณ ์ฐจํจ์๋ฅผ ์ ์ฌ์ฉํ๋ ์ง๊ด์ ์ด๊ณ ํจ์จ์ ์ธ ์ฝ๋๊ฐ ๋๋ค,,!
๋ฌธ์
https://programmers.co.kr/learn/courses/30/lessons/42840
'3๏ธโฃ Swift > Problem Solving' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift Algorithm] ์ต์๊ฐ ๋ง๋ค๊ธฐ Programmers(Lv.2) (0) | 2021.06.24 |
---|---|
[Swift Algorithm] N๊ฐ์ ์ต์๊ณต๋ฐฐ์ Programmers(Lv.2) (1) | 2021.06.18 |
[Swift Algorithm] K๋ฒ์งธ ์ Programmers(Lv.1) (0) | 2021.06.18 |
[Swift Algorithm] ์์ ๋ง๋ค๊ธฐ Programmers(Lv.1) (0) | 2021.06.18 |
[Swift Algorithm] ๋ก๋์ ์ต๊ณ ์์์ ์ต์ ์์ Programmers(Lv.1) (0) | 2021.06.18 |
๋๊ธ