๐ Problem Solution/Programmers
[Swift] ํ๋ก๊ทธ๋๋จธ์ค ๋ค๋จ๊ณ ์นซ์ ํ๋งค
Fomagran ๐ป
2021. 9. 12. 19:16
728x90
๋ฐ์ํ
Problem
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ๋ค๋จ๊ณ ์นซ์ ํ๋งค
๋ฏผํธ๋ ๋ค๋จ๊ณ ์กฐ์ง์ ์ด์ฉํ์ฌ ์นซ์์ ํ๋งคํ๊ณ ์์ต๋๋ค. ํ๋งค์์ด ์นซ์์ ํ๋งคํ๋ฉด ๊ทธ ์ด์ต์ด ํผ๋ผ๋ฏธ๋ ์กฐ์ง์ ํ๊ณ ์กฐ๊ธ์ฉ ๋ถ๋ฐฐ๋๋ ํํ์ ํ๋งค๋ง์ ๋๋ค. ์ด๋์ ๋ ํ๋งค๊ฐ ์ด๋ฃจ์ด์ง ํ,
programmers.co.kr
Solution
1. ํ๋งค์์ ๋ถ๋ชจ์ ์ด์ต์ ์ด๊ธฐํํด์ค๋ค.
var parentDic:[String:String] = [:]
var profitDic:[String:Int] = [:]
for i in 0..<enroll.count {
profitDic[enroll[i]] = 0
parentDic[enroll[i]] = referral[i]
}
2. ๋ฃจํธ ๋ถ๋ชจ๊ฐ ๋์ฌ ๋๊น์ง ์ด์ต์์ 10%๋ฅผ ์ฐจ๊ฐํ๋ค.
์ฌ๊ธฐ์ ์ฃผ์ํด์ผ ํ ์ ์ n/10์ ํ์ ๋ 0์ธ ๊ฒฝ์ฐ์ ๋ ์ด์ ์งํํด์ฃผ๋ฉด ์๋ฉ๋๋ค.(์๊ทธ๋ผ ์๊ฐ์ด๊ณผ๋จ)
๊ทธ๋ฌ๋ฏ๋ก while๋ฌธ์ ์กฐ๊ฑด์ ๊ฐ์ฅ ์ต์๋ถ๋ชจ์ธ "-" ์ด๊ฑฐ๋ n/10์ด 0๋ณด๋ค ํด ๋๋ก ๊ฑธ์ด์ค๋๋ค.
for i in 0..<seller.count {
var tenPercent:Int = amount[i]*100
var parent:String = seller[i]
while parent != "-" && tenPercent > 0 {
profitDic[parent]! += tenPercent - tenPercent/10
parent = parentDic[parent]!
tenPercent = tenPercent/10
}
}
3. ์ด์ต์ enroll์์ผ๋ก ๋ฐํํด์ค๋ค.
return enroll.map{profitDic[$0]!}
Source Code
728x90
๋ฐ์ํ