[Swift] 2020 KAKAO BLIND RECRUITMENT ์ธ๋ฒฝ ์ ๊ฒ
Problem
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์ธ๋ฒฝ ์ ๊ฒ
๋ ์คํ ๋์ ์ด์ํ๊ณ ์๋ "์ค์นดํผ"๋ ๋ ์คํ ๋ ๋ด๋ถ๊ฐ ๋๋ฌด ๋ก์ ์น๊ตฌ๋ค๊ณผ ํจ๊ป ์ง์ ๋ฆฌ๋ชจ๋ธ๋ง ํ๊ธฐ๋ก ํ์ต๋๋ค. ๋ ์คํ ๋์ด ์๋ ๊ณณ์ ์ค๋ ธ์ฐํ์ด์ผ๋ก ๋งค์ฐ ์ถ์ด ์ง์ญ์ด์ด์ ๋ด๋ถ ๊ณต์ฌ๋ฅผ ํ
programmers.co.kr
Solution
1. Set๋ก ๋ ์ทจ์ฝ์ ๋ค์ด ๋ด์ weaks ๋ณ์๋ฅผ ๋ง๋ค์ด์ค๋๋ค.
Set๋ก ๋ง๋ค์ด์ฃผ๋ ์ด์ ๋ ์ทจ์ฝ์ ๋ค์ด ๊ฐ์ ๊ฒ๋ค์ ๋ฐ๋ณต์ ํผํ๊ธฐ ์ํด์์ ๋๋ค.(์๊ฐ์ด๊ณผ ํด๊ฒฐํ๊ธฐ ์ํด)
var weaks:Set<[Int]> = [weak]
2. ์ด๋ํ ์ ์๋ ๊ฑฐ๋ฆฌ๊ฐ ํฐ ์น๊ตฌ๋ถํฐ ์ฐจ๋ก๋ก ์ํํ๋ค.
์ต๋ํ ์ ์ ์น๊ตฌ๋ฅผ ์ด์ฉํด์ผ ํ๋ฏ๋ก ๊ฑฐ๋ฆฌ๊ฐ ํฐ ์น๊ตฌ๋ถํฐ ์ํํฉ๋๋ค.
for (i,d) in dist.reversed().enumerated() { ...
3. ์ด๋ฏธ ์ ๊ฒํ ์ทจ์ฝ์ ๋ค์ ํํฐ๋งํ ์ทจ์ฝ์ ๋ค์ ์๋ก์ด ์ทจ์ฝ์ ๋ค์ ๋ด์์ค๋๋ค.
weaks์ ์ทจ์ฝ์ ๋ค์ด ๋ด๊ธด ๋ฐฐ์ด์์ ์ทจ์ฝ์ ๋ค์ ์ํํด์ค๋๋ค.
๊ทธ๋ฆฌ๊ณค ์ ๊ฒ๋์ง ์์ ์ทจ์ฝ์ ๋ค์ ํํฐ๋งํด์ค๋๋ค.
๋ง์ฝ ํํฐ๋งํ ์ทจ์ฝ์ ์ด ํ๋๋ ๋จ์ง ์์๋ค๋ฉด ๋ชจ๋ ์ ๊ฒ๋ ๊ฒ์ด๋ฏ๋ก ์น๊ตฌ ์ซ์๋ฅผ ๋ฐํํด์ค๋๋ค.
์๋๋ผ๋ฉด ์๋ก์ด ์ทจ์ฝ์ ๋ค์ ๋ด๋ ๊ณณ์ ํํฐ๋งํ ์ทจ์ฝ์ ๋ค์ ๋ฃ์ด์ค๋๋ค.
weaks์ ์ทจ์ฝ์ ๋ค์ ์ํ๊ฐ ๋๋ฌ๋ค๋ฉด weaks๋ฅผ ์๋ก์ด newWeaks๋ก ๋์ฒดํด์ค๋๋ค.
func solution(_ n:Int, _ weak:[Int], _ dist:[Int]) -> Int {
var weaks:Set<[Int]> = [weak]
for (friendCount,d) in dist.reversed().enumerated() {
var newWeaks:Set<[Int]> = []
for w in weaks {
for start in w {
let end = (n+(start-d))%n
let filterWeaks = start > end ? w.filter{$0 < end || start+1...n ~= $0 } : w.filter{ start+1..<end ~= $0 }
if filterWeaks.isEmpty { return friendCount+1 }
newWeaks.insert(filterWeaks)
}
}
weaks = newWeaks
}
return -1
}
Source Code
P.S
๋ํํ ๋ ์ ๋ง ์ด๋ ค์ ๋ ๋ฌธ์ ์๋ค...
์ฒ์์ ์๊ณ ๋ฐ๋๋ฐฉํฅ๊ณผ ์๊ณ๋ฐฉํฅ์ผ๋ก DFS ๋ฐฉ์์ผ๋ก ํ๋๋ฐ ์๊ฐ ์ด๊ณผ๊ฐ ๋ฌ๋ค.
์๋ฌด๋ฆฌ ์๊ฐํด๋ ๋ชจ๋ฅด๊ฒ ์ด์ ๋ค๋ฅธ ์ฌ๋ ํ์ด๋ฅผ ๋ดค๋๋ฐ Set๋ก ์ทจ์ฝ์ ๋ค์ ๋ด์์ค์ ๋ฐ๋ณต๋์ง ์๊ฒ ํ๋๊ฒ ํต์ฌ์ด์๋ค...
๊ทธ๋ฆฌ๊ณ ์์ง๊น์ง ์ดํด๋ ์๋๋๋ฐ ์ ๋ฐ์๊ณ ๋ฐฉํฅ์ผ๋ก ํต์ผํด๋ ๋ต์ด ๊ฐ์๊ฑธ๊น..? ๋๋ฌด ์ฐ์ฐํ๋ค...
์ฐธ๊ณ ํ ๋ธ๋ก๊ทธ
[ํ๋ก๊ทธ๋๋จธ์ค] 2020 KAKAO BLIND RECRUITMENT Coding Test ์ธ๋ฒฝ ์ ๊ฒ Solution in Swift
๋ฌธ์ ์ถ์ฒ ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์. programmers.co
rosemelon.hwachae.com