Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Alamofire
- regex
- ObjC
- iOS 13.0+
- composablearchitecture
- 개발
- 정규표현식
- xcodecloud
- IOS
- concurrency
- uikit
- Firebase
- Navigation
- framework
- github
- xcode
- tuist #xcodecloud #ios #ci/cd #swiftlint #firebase
- combine
- 앱구조
- TCA
- Tuist
- SWIFT
- UI
- swiftdata
- ios18
- Git
- SWIFTUI
- navigationsplitview
- iOS 개발자
- network
Archives
- Today
- Total
iOS 개발 기록
Swift - 오픈채팅방(프로그래머스, Lv2) 본문
728x90
func solution(_ record:[String]) -> [String] {
var nickname = [String : String]()
var result = [String]()
enum printScript: String {
case Enter = "님이 들어왔습니다."
case Leave = "님이 나갔습니다."
}
let recordAry = record.map{ $0 }
// 닉네임 Dic 업데이트
recordAry.forEach{
let sen = $0.components(separatedBy: " ")
if sen.count == 3 {
nickname.updateValue(sen[2], forKey: sen[1])
}
}
// record 순서대로 메세지 출력
recordAry.filter{ !$0.contains("Change")}.forEach{
let sen = $0.components(separatedBy: " ")
switch sen[0] {
case "Enter" :
let resultSen = "\(nickname[sen[1]]!)" + printScript.Enter.rawValue
result.append(resultSen)
case "Leave" :
let resultSen = "\(nickname[sen[1]]!)" + printScript.Leave.rawValue
result.append(resultSen)
default:
break
}
}
return result
}
닉네임을 업데이트 한 후 최종 업데이트 된 Dictionary를 가지고 주어진 record를 따라 문자열 출력
'코딩테스트' 카테고리의 다른 글
Swift - 셔틀버스(프로그래머스, Lv3) (0) | 2022.05.10 |
---|---|
Swift - 추석 트래픽 (프로그래머스, Lv.3) (0) | 2022.04.12 |
Swift - 2178번 미로 [BaekJoon] (0) | 2022.04.05 |
Swift - 큰 수 만들기(프로그래머스, 그리디 Lv2) (0) | 2022.03.31 |