๋ฌธ์ ์ค๋ช
์ ํ ์คํฌ์ด๋ ์ด๋ค ์คํฌ์ ๋ฐฐ์ฐ๊ธฐ ์ ์ ๋จผ์ ๋ฐฐ์์ผ ํ๋ ์คํฌ์ ๋ปํฉ๋๋ค.
์๋ฅผ ๋ค์ด ์ ํ ์คํฌ ์์๊ฐ ์คํํฌ → ๋ผ์ดํธ๋ ๋ณผํธ → ์ฌ๋์ผ๋, ์ฌ๋๋ฅผ ๋ฐฐ์ฐ๋ ค๋ฉด ๋จผ์ ๋ผ์ดํธ๋ ๋ณผํธ๋ฅผ ๋ฐฐ์์ผ ํ๊ณ , ๋ผ์ดํธ๋ ๋ณผํธ๋ฅผ ๋ฐฐ์ฐ๋ ค๋ฉด ๋จผ์ ์คํํฌ๋ฅผ ๋ฐฐ์์ผ ํฉ๋๋ค.
์ ์์์ ์๋ ๋ค๋ฅธ ์คํฌ(ํ๋ง ๋ฑ)์ ์์์ ์๊ด์์ด ๋ฐฐ์ธ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์คํํฌ → ํ๋ง → ๋ผ์ดํธ๋ ๋ณผํธ → ์ฌ๋์ ๊ฐ์ ์คํฌํธ๋ฆฌ๋ ๊ฐ๋ฅํ์ง๋ง, ์ฌ๋ → ์คํํฌ๋ ๋ผ์ดํธ๋ ๋ณผํธ → ์คํํฌ → ํ๋ง → ์ฌ๋์ ๊ฐ์ ์คํฌํธ๋ฆฌ๋ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
์ ํ ์คํฌ ์์ skill๊ณผ ์ ์ ๋ค์ด ๋ง๋ ์คํฌํธ๋ฆฌ1๋ฅผ ๋ด์ ๋ฐฐ์ด skill_trees๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๊ฐ๋ฅํ ์คํฌํธ๋ฆฌ ๊ฐ์๋ฅผ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ ์กฐ๊ฑด
- ์คํฌ์ ์ํ๋ฒณ ๋๋ฌธ์๋ก ํ๊ธฐํ๋ฉฐ, ๋ชจ๋ ๋ฌธ์์ด์ ์ํ๋ฒณ ๋๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- ์คํฌ ์์์ ์คํฌํธ๋ฆฌ๋ ๋ฌธ์์ด๋ก ํ๊ธฐํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด, C → B → D ๋ผ๋ฉด CBD๋ก ํ๊ธฐํฉ๋๋ค
- ์ ํ ์คํฌ ์์ skill์ ๊ธธ์ด๋ 1 ์ด์ 26 ์ดํ์ด๋ฉฐ, ์คํฌ์ ์ค๋ณตํด ์ฃผ์ด์ง์ง ์์ต๋๋ค.
- skill_trees๋ ๊ธธ์ด 1 ์ด์ 20 ์ดํ์ธ ๋ฐฐ์ด์ ๋๋ค.
- skill_trees์ ์์๋ ์คํฌ์ ๋ํ๋ด๋ ๋ฌธ์์ด์
๋๋ค.
- skill_trees์ ์์๋ ๊ธธ์ด๊ฐ 2 ์ด์ 26 ์ดํ์ธ ๋ฌธ์์ด์ด๋ฉฐ, ์คํฌ์ด ์ค๋ณตํด ์ฃผ์ด์ง์ง ์์ต๋๋ค.
์ ์ถ๋ ฅ ์
skill | skill_trees | return |
"CBD" | ["BACDE", "CBADF", "AECB", "BDA"] | 2 |
ํ์ด:๋จผ์ skill์ ์๋ ๋ฌธ์๋ค์ ๋ฐฐ์ด๋ก ๋๋ ๋ฃ์ด์ค๋ค.(var a)
๊ทธ๋ฆฌ๊ณ for๋ฌธ์ ๋๋ฆฌ๊ณ filter๋ฅผ ์ด์ฉํด skill_trees์ ์๋ ๋ฌธ์์ด๋ค ์ค a์ ๊ฐ์ ๋ฌธ์๋ฅผ ๊ฐ์ง๊ณ ์๋ค๋ฉด arr์ ์ถ๊ฐํด์ค๋ค.
๊ทธ๋ฆฌ๊ณ while๋ฌธ์ผ๋ก a์ arr์ ์์๋ฅผ ๋น๊ตํด์ฃผ๊ณ ์์๊ฐ ๋ง๋ค๋ฉด ์ฐจ๋ก๋ก ๋งจ ์ฒ์ ์ธ๋ฑ์ค๋ฅผ ์์ ์ฃผ๊ณ ์๋๋ผ๋ฉด break๋ฅผ ํ ๋ค count๋ฅผ -1
ํด์ค๋ค.
count๋ฅผ skill_trees์์ ์๋ ํฌ๊ธฐ๋งํผ ์ก์์ฃผ๋ฉด ์ฌ๋ฐ๋ฅธ ์์๋๋ก ์๋ ๊ฒ๋ค์ ๊ฐฏ์๊ฐ count๊ฐ ๋๋ค.
์์์๊ฐ: 10๋ถ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
import Foundation
func solution(_ skill:String, _ skill_trees:[String]) -> Int {
for i in skill_trees {
var arr = i.filter{a.contains($0)}
while !arr.isEmpty {
a.removeFirst()
arr.removeFirst()
}else {
count -= 1
break
}
}
}
return count
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
|
์ต๋ํ ์ค์ฌ๋ณธ ๊ฒ
1
2
3
4
|
import Foundation
func solution(_ skill:String, _ skill_trees:[String]) -> Int {
return skill_trees.map{$0.filter{skill.map{$0}.contains($0)}}.filter{skill.prefix($0.count) == $0}.count
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
|
๋ค๋ฅธ ์ฌ๋ ํ์ด ์ค ๊ฐ์ฅ ์ข๋ค๊ณ ์๊ฐํ๋ ๊ฒ
skill์ ๋ฌธ์๋ค์ด ํฌํจ๋์ด ์๋ skill_trees๋ฅผ ๋ชจ์ prefix๋ก ๋น๊ตํด์ฃผ๋ฉด ๋๋ค.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
import Foundation
func solution(_ skill:String, _ skill_trees:[String]) -> Int {
var result = 0
for tree in skill_trees {
if prefix == list {
result += 1
}
}
return result
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
|
'๐ Problem Solution > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
2020 KAKAO BLIND RECRUITMENT ๋ฌธ์์ด ์์ถ Swift (0) | 2020.03.28 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค ์ ๋ง๋๊ธฐ Swift (0) | 2020.03.28 |
ํ๋ก๊ทธ๋๋จธ์ค ๊ธฐ๋ฅ๊ฐ๋ฐ Swift (0) | 2020.03.23 |
ํ๋ก๊ทธ๋๋จธ์ค ๋ฉ์ฉกํ ์ฌ๊ฐํ Swift (0) | 2020.03.21 |
ํ๋ก๊ทธ๋๋จธ์ค ํ Swift (0) | 2020.03.19 |
๋๊ธ