ํ๋ก๊ทธ๋๋จธ์ค ์์์ฐพ๊ธฐ Level 2 Swift
๋ฌธ์ ์ค๋ช
ํ์๋ฆฌ ์ซ์๊ฐ ์ ํ ์ข ์ด ์กฐ๊ฐ์ด ํฉ์ด์ ธ์์ต๋๋ค. ํฉ์ด์ง ์ข ์ด ์กฐ๊ฐ์ ๋ถ์ฌ ์์๋ฅผ ๋ช ๊ฐ ๋ง๋ค ์ ์๋์ง ์์๋ด๋ ค ํฉ๋๋ค.
๊ฐ ์ข ์ด ์กฐ๊ฐ์ ์ ํ ์ซ์๊ฐ ์ ํ ๋ฌธ์์ด numbers๊ฐ ์ฃผ์ด์ก์ ๋, ์ข ์ด ์กฐ๊ฐ์ผ๋ก ๋ง๋ค ์ ์๋ ์์๊ฐ ๋ช ๊ฐ์ธ์ง return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
- numbers๋ ๊ธธ์ด 1 ์ด์ 7 ์ดํ์ธ ๋ฌธ์์ด์ ๋๋ค.
- numbers๋ 0~9๊น์ง ์ซ์๋ง์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- 013์ 0, 1, 3 ์ซ์๊ฐ ์ ํ ์ข ์ด ์กฐ๊ฐ์ด ํฉ์ด์ ธ์๋ค๋ ์๋ฏธ์ ๋๋ค.
์ ์ถ๋ ฅ ์
numbers | return |
17 | 3 |
011 | 2 |
ํ์ด: ์ฐ์ numbers๊ฐ ์ฃผ์ด์ก์ ๊ฒฝ์ฐ ๋ชจ๋ ์กฐํฉ์ ์ฐพ๊ธฐ ์ํด์๋ ์ด๋ฌํ ๊ณผ์ ์ด ํ์ํ๋ค.
ex) numbers๊ฐ 123456์ผ๊ฒฝ์ฐ
์ฐจ๋ก๋ก ๋งจ ์์๋ฆฌ์ ์ซ์๋ค์ ๋์ ํ๋ฉด์ n-1์ ์๋ฆฌ ์ซ์๋ค์ ๋ค์ ๋ฐฐ์นํ๋ค.
- 1 2 3 4 5 6
- 11 12 13 14 15 16 , 21 22 23 24 25 26 .... 66
- 111 112 113 114 116 121 122 123 124 125 126 .... 666
์ด๋ ๊ฒ ๋ชจ๋ ์ซ์๋ค์ ๋์ดํ๋ฉด ๋ฌธ์ ๊ฐ ์๊ธฐ๋๋ฐ
11, 111 222 666๊ณผ ๊ฐ์ด ์ซ์๋ ํ๋๋ง ์๋๋ฐ ์กฐํฉ์์ ์ฌ๋ฌ ์ซ์๊ฐ ์๋ ๊ฒ์ด๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋งจ ์ฒ์ numbers์ ๊ฐ ์ซ์๋ค์ด ๋ช๊ฐ ์๋์ง(์ค๋ณต์ด ์๋์ง)๋ฅผ ์ฐพ๋๋ค.
๊ทธ๋ฆฌ๊ณค ์กฐํฉ ์์ ์ซ์๊ฐ ๊ทธ ์ซ์๋ณด๋ค ๋ง์ ๊ฒ์ ์ถ๊ฐํด์ฃผ์ง ์๊ณ ์ ๊ฑฐ๋ ๊ฐ์ ๊ฒ๋ค์ ์ถ๊ฐํด์ค๋๋ค.
์ค๋ณต์ ์์ ๊ธฐ ์ํด Set๋ฅผ ์ฌ์ฉํด์ค ๋ค ๊ทธ๋ ๊ฒ ๊ฑธ๋ฌ์ ธ ๋์จ ์ซ์๋ค์ ์์๊ฐ ๋ง๋์ง ํ์ธํด์ค๋๋ค.
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
import Foundation
func solution(_ numbers:String) -> Int {
var answer = 0
let map = numbers.compactMap{String($0)}
var overlap2 = [String:Int]()
var overlap1 = [String]()
var set:Set<Int> = []
//์ซ์ ์ค ์ค๋ณต์ด ์๋์ง ์ฐพ๊ธฐ
for i in map {
if overlap1.contains(i){
overlap2[i]! += 1
continue
}
overlap2[i] = 1
}
//์ซ์ ๋ชจ๋ ์กฐํฉ
array[0] = map
for j in 0..<array[i-1].count{
let a = "\(map[k])\(array[i-1][j])"
if a.map({String($0)}).filter({$0 == map[k]}).count <= overlap2[map[k]]!{
array[i].append(a)
}
}
}
}
}
//์์ ์ฐพ๊ธฐ
for n in set{
var count = 0
if n == 1 || n == 0{
continue
}
for i in 2...n{
if n%i == 0{
count += 1
if count > 1{
break
}
}
}
if count == 1 {
answer += 1
}
}
return answer
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
|