Foma's ํ์ด
๋ฌธ์ ํ์ด
1. ์ด ๋ฌธ์ ์ ํต์ฌ์ ์์๋ฅผ ํ๋ณํ ์ ์๋๊ฐ?
์์๋ฅผ ํ๋ณํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ ์์๊ฐ ์๋ ๋์ ๊ฒฝ์ฐ๋ฅผ ๊ตฌํด์ฃผ๋ฉด ๋ฉ๋๋ค.
์์๊ฐ ์๋ ๋์ ๊ฒฝ์ฐ๋ 1๊ณผ ์์ ์ ์ ์ธํ ์ซ์๋ก n์ ๋๋์์ ๋ ๋๋์ด ๋จ์ด์ง๊ฒ ๋ฉ๋๋ค.
2. ๋ค์ค for๋ฌธ์ ์ฌ์ฉํด ์ค๋ณต์๋ 3๊ฐ์ ์ซ์์ ํฉ์ ์ฐจ๋ก๋ก ๋ง๋ค ์ ์๋๊ฐ?
๋จผ์ ์ฒซ๋ฒ์งธ์ ๋๋ฒ์งธ์ ์ธ๋ฒ์งธ์๋ฅผ ์ ํด์ค์ผ ํฉ๋๋ค.
์ฒซ๋ฒ์งธ์๋ 0๋ถํฐ nums์ -3๋ฒ์งธ๊น์ง ์ฐจ๋ก๋ก ์ค์ ํด์ค๋๋ค. (๋๋ฒ์งธ์ ์ธ๋ฒ์งธ ์๊ฐ ์์ด์ผํ๋ฏ๋ก -3์ ํด์ค์ผํฉ๋๋ค.)
๋๋ฒ์งธ ์๋ ์ฒซ๋ฒ์งธ์ + 1๋ก ์ค์ ํด์ค๋๋ค.
์ธ๋ฒ์งธ ์๋ ๋๋ฒ์งธ์์ + 1๋ก ์ค์ ํด์ค ๋ค ํฉ๋ค์ ๋ชจ์์ค๋๋ค.
์ฝ๋ํ์ด
3๊ฐ ์ซ์์ ํฉ์ ๋ด์์ค ๋ฐฐ์ด์ ๋ง๋ค์ด์ค๋๋ค. -> var sums = [Int]()
๊ฐ์ฅ ๋ฐ๊นฅ์ชฝ for๋ฌธ์ ๋ฒ์๋ 0๋ถํฐ nums๊ฐฏ์-3๋งํผ(<nums์ ๊ฐฏ์-2๋ณด๋ค ์์) ๋ฐ๋ณตํด์ค๋๋ค. -> for i in 0..<nums.count-2 {...}
๊ทธ ์์ชฝ for๋ฌธ์ ๋ฒ์ ๋ฐ๋ก ๋ฐ๊นฅ for๋ฌธ์ ์ซ์+1(i+1)์์ nums์ ๊ฐฏ์๋งํผ ๋ฐ๋ณตํด์ค๋๋ค. -> for j in i+1..<nums.count {...}
๊ทธ ์์ชฝ์ ์์ชฝ for๋ฌธ์ ๋ฒ์ ๋ฐ๋ก ๋ฐ๊นฅ for๋ฌธ์ ์ซ์+1(j+1)์์ nums์ ๊ฐฏ์๋งํผ ๋ฐ๋ณตํด์ค๋๋ค. -> for k in j+1..<nums.count {...}
์ซ์ 3๊ฐ์ ํฉ์ sums์ ๋ด์์ค๋๋ค. -> sums.append(nums[i] + nums[j] + nums[k])
๊ทธ ๋ค์์ผ๋ก filter์ isPrime์ ์ด์ฉํ์ฌ ์์๊ฐ ๋ง๋ ์์ ๊ฐฏ์๋ฅผ ์ผ ๋ค ๋ฐํํด์ค๋๋ค. -> return sums.filter{isPrime($0)}.count
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
|
import Foundation
func solution(_ nums:[Int]) -> Int {
var sums = [Int]()
for i in 0..<nums.count-2 {
for j in i+1..<nums.count {
for k in j+1..<nums.count {
sums.append(nums[i] + nums[j] + nums[k])
}
}
}
return sums.filter{isPrime($0)}.count
}
func isPrime(_ n:Int) -> Bool {
for i in 2..<n {
if n%i == 0 {
return false
}
}
return true
}
|
'๐ Problem Solution > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค ๊ฐ์ฅ ํฐ ์ ์ฌ๊ฐํ ์ฐพ๊ธฐ Swift (0) | 2020.10.23 |
---|---|
2018 KAKAO BLIND RECRUITMENT [1์ฐจ] ๋ด์ค ํด๋ฌ์คํฐ๋ง Swift (0) | 2020.10.20 |
2018 KAKAO BLIND RECRUITMENT [1์ฐจ] ์บ์ Swift (0) | 2020.10.17 |
ํ๋ก๊ทธ๋๋จธ์ค ์์ ๋์งํ Swift (0) | 2020.10.17 |
ํ๋ก๊ทธ๋๋จธ์ค ์ ํ์ ์๊ฐ์ด๋ Swift (0) | 2020.10.16 |
๋๊ธ