-
[Swift] 오픈채팅방 프로그래머스개발/Swift 2022. 3. 27. 17:32
["Enter uid1234 Muzi", "Enter uid4567 Prodo","Leave uid1234","Enter uid1234 Prodo","Change uid4567 Ryan"]
문제 해결방법
들어오고 나가면 return 배열에 값을 추가하게되는데
이때 닉네임은 마지막에 유저가 설정한 닉네임을 써야한다.
그러므로 마지막 상태의 유저 닉네임을 알고있어야 한다.
관련 정보를 먼저 dict 에 넣어준다.
//uid1234 prodo //uid4566 ryan
그리고 나중에
enter/leave 관련한 히스토리 를 보고 uid와 최종 닉네임을 참조해서 result 배열을 만들어 리턴하면 된다.
func solution(_ record:[String]) -> [String] { var nicknameDict = [String:String]() var answer = [String]() for i in 0..<record.count{ let data = record[i].split(separator: " ") if(data[0] != "Leave"){ nicknameDict[String(data[1])] = String(data[2]) } } for i in 0..<record.count{ let data = record[i].split(separator: " ") let nickname = nicknameDict[String(data[1])]! if(data[0] == "Enter"){ answer.append("\\(nickname)님이 들어왔습니다.") }else if(data[0] == "Leave"){ answer.append("\\(nickname)님이 나갔습니다.") } } print(answer) return answer }
'개발 > Swift' 카테고리의 다른 글
백준 1303 DFS 활용문제 (0) 2022.04.08 백준 1260 DFS 와 BFS 구현하기 (0) 2022.04.08 [Swift] 문자열 압축 (0) 2022.03.26 [Swift] CountNonDivisible 코딜리티 코딩테스트 (0) 2022.03.05 [Swift] countFactors 약수구하기 코딜리티 코딩테스트 (0) 2022.03.05