Foma's ํ์ด
์ค๋ณต์ ํ์ธํ ๋ณ์ (for๋ฌธ์ 1๋ถํฐ ๋๋ฆด๊ฒ์ด๋ฏ๋ก 0๋ฒ์งธ ๋จ์ด๋ ๋ฏธ๋ฆฌ ๋ฃ์ด์ค๋๋ค.) -> var w = [words[0]]
๋ฒํธ๋ฅผ ์ ์ฅํ ๋ณ์ -> var number = Int()
์ฐจ๋ก๋ฅผ ์ ์ฅํ ๋ณ์ -> var time = Int()
for๋ฌธ์ผ๋ก 1๋ถํฐ words์ ๊ฐฏ์๋งํผ ๋ฐ๋ณตํด์ค๋๋ค. -> for i in 1..<words.count { ... }
์กฐ๊ฑด 1 ๋ฐ๋ณต๋ ๋จ์ด ๊ฒ์ฌ
w์์ ํ์ฌ ๋จ์ด(words[i])๊ฐ ์๋์ง ํ์ธ - > if w.contains(words[i]) { ... }
์๋ค๋ฉด number๋ฅผ ํ์ฌ ๋จ์ด์ ์ธ๋ฑ์ค + 1 (0๋ฒ์งธ๋ถํฐ ์์ํ๋ฏ๋ก + 1์ ํด์ค๋๋ค.) ๋๋๊ธฐ n์ ๋๋จธ์ง๋ก ์ค์ ํด์ค๋๋ค. -> number = (i+1)%n
(i+1)/n๊ฐ์ด ๋ฑ ๋จ์ด์ง์ง ์๋๋ค๋ฉด ๋ค์ ์ฐจ๋ก๊ฐ ์์๋๊ฒ์ด๋ฏ๋ก time์ (i+1)/n + 1๋ก ์๋๋ผ๋ฉด (i+1)/n์ผ๋ก ์ค์ ํด์ค๋๋ค. ->
if Double((i+1)/n) < Double(i+1)/Double(n) {
time = (i+1)/n + 1
}else{
time = (i+1)/n
}
๊ทธ๋ฆฌ๊ณค for๋ฌธ์ ์งํํ ํ์๊ฐ ์์ผ๋ฏ๋ก ๋ฉ์ถฐ์ค๋๋ค. -> break
์๋๋ผ๋ฉด w์ ๋จ์ด๋ฅผ ๋ฃ์ด์ค๋๋ค. - > w.append(words[i])
์กฐ๊ฑด 2 ๊ทธ ์ ๋จ์ด์ ๋ง์ง๋ง ๊ธ์์ ํ์ฌ ๋จ์ด์ ์ฒซ๋ฒ์งธ ๋จ์ด ๊ฒ์ฌ
์ ๋จ์ด์ ๋ง์ง๋ง ๊ธ์์ ํ์ฌ ๋จ์ด์ ์ฒซ๋ฒ์งธ ๊ธ์๊ฐ ๊ฐ์์ง ํ์ธ - > if words[i-1].last! != words[i].first!{...}
์กฐ๊ฑด 1๊ณผ ๋์ผํ๊ฒ ์์ฑ -> number = (i+1)%n
if Double((i+1)/n) < Double(i+1)/Double(n) {
time = (i+1)/n + 1
}else{
time = (i+1)/n
}
break
}
time์ด 0์ด๋ผ๋ฉด ํ๋ฆฐ ๋จ์ด๊ฐ ์๋ค๋ ๋ป(๋ง์ฝ ์๋ค๋ฉด ๋ฌด์กฐ๊ฑด 1์ด์)์ด๋ฏ๋ก [0,0]์ ๋ฐํ - > if time == 0 {
return [0,0]
}
number๊ฐ 0์ด๋ผ๋๊ฑด (i+1)%n๊ฐ 0์ด๋ฏ๋ก n๋ฒ์งธ ์ฌ๋์ด๋ผ๊ณ ๋ณผ ์ ์์ผ๋ฏ๋ก n์ 0์ด ์๋๋ผ๋ฉด ๋๋จธ์ง๋ฅผ ๋ฐํํด์ค๋๋ค. ->
return number == 0 ? [n,time] : [number,time]
์ ์ฒด์ฝ๋
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
|
import Foundation
func solution(_ n:Int, _ words:[String]) -> [Int] {
var w = [words[0]]
var number = Int()
var time = Int()
for i in 1..<words.count {
if w.contains(words[i]) {
number = (i+1)%n
if Double((i+1)/n) < Double(i+1)/Double(n) {
time = (i+1)/n + 1
}else{
time = (i+1)/n
}
break
}
if words[i-1].last! != words[i].first!{
number = (i+1)%n
if Double((i+1)/n) < Double(i+1)/Double(n) {
time = (i+1)/n + 1
}else{
time = (i+1)/n
}
break
}
w.append(words[i])
}
if time == 0 {
return [0,0]
}
return number == 0 ? [n,time] : [number,time]
}
|
'๐ Problem Solution > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค ํ๋ ฌ์ ๊ณฑ์ Swift (0) | 2020.10.05 |
---|---|
2019 KAKAO BLIND RECRUITMENT ์คํ์ฑํ ๋ฐฉ Swift (0) | 2020.09.24 |
2019 ์นด์นด์ค ๊ฐ๋ฐ์ ๊ฒจ์ธ ์ธํด์ฝ ํํ Swift (0) | 2020.09.07 |
2020 ์นด์นด์ค ์ธํด์ฝ ์์ ์ต๋ํ Swift (0) | 2020.09.03 |
ํ๋ก๊ทธ๋๋จธ์ค ํ๊ฒ ๋๋ฒ Swift (0) | 2020.08.31 |
๋๊ธ