Source Code
Solution
ํด๋น ๋ฌธ์ ๋ ํด์ฌ๋ฌธ์ ์๋ค.(Swift๋ก ๋ฐ์ง๋ฉด Dictionary๋ฅผ ์ฌ์ฉํด ํ์ด์ผํ๋ ๋ฌธ์ )
1. ๊ฐ ์ฅ๋ฅด๋ฅผ ํค๊ฐ์ผ๋ก ์ฅ๋ฅด๊ฐ ์๋ ์ธ๋ฑ์ค๋ฅผ ๋ฐธ๋ฅ๊ฐ์ผ๋ก ๋์ ๋๋ฆฌ๋ฅผ ๋ง๋ค์ด์ ๋ด์์ค๋ค.
2. 1์์ ๋ด์ ์ธ๋ฑ์ค๋ค์ ํ๋ ์ด ๊ฐ์ ๊ธฐ์ค์ผ๋ก ๊ฐ์ฅ ํฐ 2๊ฐ์ ์ธ๋ฑ์ค๋ง ๋ด์์ค๋ค.
3. ๊ฐ ์ฅ๋ฅด๋ฅผ ํค๊ฐ์ผ๋ก ํ๊ณ ๊ฐ ์ฅ๋ฅด์ ์ธ๋ฑ์ค๊ฐ ์๋ ํ๋ ์ด ๊ฐ์ ์ดํฉ์ ๋ฐธ๋ฅ๊ฐ์ผ๋ก ๊ฐ๋ ๋์ ๋๋ฆฌ๋ฅผ ๋ง๋ค์ด์ ๋ด์์ค๋ค.
4. ์ดํฉ์ด ๊ฐ์ฅ ๋์ ์์ผ๋ก ๋์ ๋๋ฆฌ๋ฅผ ์ ๋ ฌํด์ค๋ค ์ธ๋ฑ์ค๋ฅผ ๋ด๊ณ ์๋ ๋ฐธ๋ฅ๊ฐ๋ค์ ๊ฐ ์ฅ๋ฅด๋ณ๋ก ๋ชจ์์ค ๋ค์ ๋ฐํํด์ค๋ค.
Problem
์๋กญ๊ฒ ์๊ฒ ๋ ๊ฒ
๋์ ๋๋ฆฌ๋ฅผ ๋ด์๋ฐฐ์ด์ ์ธ๋ฑ์ค๊ฐ ์๊ณ ์์๋ ๋๋ค์ผ๋ก ๋ฐฐ์น๋๋ค.
๊ณ ๋ก ๋ฐฐ์ด์ ๋์ ๋๋ฆฌ๋ฅผ ๋ด์์ ์ ๋ ฌ์ ํด์ฃผ์ด์ผ ๋๋ค.
๋ค๋ฅธ ์ฌ๋ ํ์ด
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
import Foundation
class Album {
var index : Int
var playTime : Int
init(_ index : Int, _ playTime : Int) {
self.index = index
self.playTime = playTime
}
}
func solution(_ genres:[String], _ plays:[Int]) -> [Int] {
var albumDic = [String : [Album]]()
plays
.enumerated()
.map { (genres[$0], Album($0, $1)) }
.forEach { albumDic[$0, default: [Album]() ].append($1) }
return albumDic
.sorted {
$0.value.reduce(0, { $0 + $1.playTime }) > $1.value.reduce(0, { $0 + $1.playTime })
}
.map { _, albums -> [Int] in
guard albums.count > 1 else { return [albums[0].index] }
let sorted = albums.sorted(by: { $0.playTime > $1.playTime} )
return [sorted[0].index, sorted[1].index]}
.reduce(into: [Int]()) { $0.append(contentsOf : $1) }
}
|
ํ ์คํธ ์ผ์ด์ค ํจ์จ์ฑ ๋น๊ต
์ข์ธก ๋ด ์ฝ๋ ์ฐ์ธก ๋ค๋ฅธ ์ฌ๋ ์ฝ๋
๊ทธ๋๋ ์ด๋ฒ์๋ ๋น์ท๋น์ทํ๊ฒ ๋์๋ค.
'๐ Problem Solution > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค ์ฌํ๊ฒฝ๋ก Swift (0) | 2020.12.28 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค ๋จ์ด ๋ณํ Swift (0) | 2020.12.11 |
ํ๋ก๊ทธ๋๋จธ์ค ๋คํธ์ํฌ Swift (0) | 2020.12.10 |
ํ๋ก๊ทธ๋๋จธ์ค SQL (0) | 2020.12.06 |
2019 KAKAO BLIND RECRUITMENT ํ๋ณดํค Swift (0) | 2020.12.04 |
๋๊ธ