Foma's ํ์ด
๋จผ์ ๋ค์ด์ค๊ณ ๋๊ฐ useruid์ ์์๋ฅผ ์ ์ฅํ ๋ฐฐ์ด -> var order = [String]()
userUID๋ฅผ ์ ์ฅํ ๋์ ๋๋ฆฌ๋ฅผ -> var userUID = [String:String]()
๋ค์ด์จ๊ฑด์ง ๋๊ฐ๊ฑด์ง ์ ์ฅํ ๋ฐฐ์ด -> var EnterOrLeave = [String]()
์ ๋ต์ ์ ์ฅํ ๋ฐฐ์ด -> var answer = [String]()
record์์ ์๋ ๋งํผ for๋ฌธ์ ๋ฐ๋ณตํ๋ค. -> for r in record {...}
๋์ด์ฐ๊ธฐ๋ฅผ ๊ธฐ์ค์ผ๋ก recored์์ ์๋ ๊ธ์จ๋ฅผ ๋๋์ด์ค๋ค.(์ด๋ ๊ฒ ๋๋์ด์ฃผ๋ฉด 0๋ฒ์งธ๋ Enter,Leave,Change ์ค ํ๋๊ฐ ๋ด๊ธฐ๊ณ 1๋ฒ์งธ๋ ์ ์์ด๋๊ฐ 2๋ฒ์งธ๋ ๋๋ค์์ด ๋ด๊ธฐ๊ฒ ๋๋ค.) -> let sep = r.components(separatedBy: " ")
0๋ฒ์งธ๊ฐ Enter์ผ๊ฒฝ์ฐ EnterOrLeave์ "๋์ด ๋ค์ด์์ต๋๋ค."๋ฅผ ๋ฃ์ด์ค๋ค. ๊ทธ๋ฆฌ๊ณค userUID์ ํค๊ฐ์ ๋๋์ด์ค ๋ฐฐ์ด์ 1๋ฒ์งธ(์ ์์ด๋)๋ก ํด์ฃผ๊ณ ๋๋์ด์ค ๋ฐฐ์ด์ 2๋ฒ์งธ(๋๋ค์)๋ฅผ ๋ฐธ๋ฅ๊ฐ์ผ๋ก ์ค์ ํด์ค๋ค. ๊ทธ๋ฆฌ๊ณค order์ ์ ์์ด๋๋ฅผ ๋ฃ์ด์ค๋ค. ->
if sep[0] == "Enter" {
EnterOrLeave.append("๋์ด ๋ค์ด์์ต๋๋ค.")
userUID[sep[1]] = sep[2]
order.append(sep[1])
}
0๋ฒ์งธ๊ฐ Leave์ผ๊ฒฝ์ฐ EnterOrLeave์ "๋์ด ๋๊ฐ์ต๋๋ค."๋ฅผ ๋ฃ์ด์ค๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก order์ ์ ์์ด๋๋ฅผ ๋ฃ์ด์ค๋ค. ->
else if sep[0] == "Leave"{
EnterOrLeave.append("๋์ด ๋๊ฐ์ต๋๋ค.")
order.append(sep[1])
}
0๋ฒ์งธ๊ฐ Change์ผ ๊ฒฝ์ฐ userUID์ ํค๊ฐ์ ๋๋์ด์ค ๋ฐฐ์ด์ 1๋ฒ์งธ(์ ์์ด๋)๋ฅผ ํค๊ฐ์ผ๋ก 2๋ฒ์งธ๊ฐ์ ๋ฐธ๋ฅ๊ฐ์ผ๋ก ์ค์ ํด์ค๋ค.
-> else if sep[0] == "Change"{
userUID[sep[1]] = sep[2]
}
order์์ ๊ฐ์ผ๋ก for๋ฌธ์ ๋ฐ๋ณตํ๊ณ ์ฐจ๋ก๋ก userUID๋์ ๋๋ฆฌ์์ order์์ ์ ์์ด๋๊ฐ์ ํค๊ฐ์ผ๋ก ํ๋ ๋ฐธ๋ฅ๊ฐ๊ณผ EnterOrLeave์ ๊ฐ์ ํฉ์ณ์ answer๋ฐฐ์ด์ ์ถ๊ฐํด์ค๋ค. ->
for i in 0..<order.count {
answer.append("\(userUID[order[i]]!)\(EnterOrLeave[i])")
}
answer๋ฅผ ๋ฐํํด์ค๋ค. -> return answer
์ ์ฒด์ฝ๋
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
|
import Foundation
func solution(_ record:[String]) -> [String] {
var order = [String]()
var userUID = [String:String]()
var EnterOrLeave = [String]()
var answer = [String]()
for r in record {
let sep = r.components(separatedBy: " ")
if sep[0] == "Enter" {
EnterOrLeave.append("๋์ด ๋ค์ด์์ต๋๋ค.")
userUID[sep[1]] = sep[2]
order.append(sep[1])
}
else if sep[0] == "Leave"{
EnterOrLeave.append("๋์ด ๋๊ฐ์ต๋๋ค.")
order.append(sep[1])
}
else if sep[0] == "Change"{
userUID[sep[1]] = sep[2]
}
}
for i in 0..<order.count {
answer.append("\(userUID[order[i]]!)\(EnterOrLeave[i])")
}
return answer
}
|
'๐ Problem Solution > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค ํผ๋ณด๋์น ์ Swift (0) | 2020.10.09 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค ํ๋ ฌ์ ๊ณฑ์ Swift (0) | 2020.10.05 |
ํ๋ก๊ทธ๋๋จธ์ค ์์ด ๋๋ง์๊ธฐ Swift (0) | 2020.09.24 |
2019 ์นด์นด์ค ๊ฐ๋ฐ์ ๊ฒจ์ธ ์ธํด์ฝ ํํ Swift (0) | 2020.09.07 |
2020 ์นด์นด์ค ์ธํด์ฝ ์์ ์ต๋ํ Swift (0) | 2020.09.03 |
๋๊ธ