일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- War Game
- Java
- 스택
- pwnable.kr
- C
- 두근두근 자료구조
- 백준
- web
- 파이썬
- 자료구조
- 암호수학
- 큐
- windosws wbcs
- PHP
- windosw 문자열
- System
- OSI
- 정렬 알고리즘
- level13
- 미로 탐색 알고리즘
- 재귀
- LoB
- Stack
- ftz
- c언어
- 시간복잡도
- HTML
- ftz level13
- 파일 시스템
- SWiFT
Archives
- Today
- Total
나의 기록, 현진록
[Swift] 프로그래머스 2019 KAKAO BLIND RECRUITMENT > 오픈채팅방 본문
Programming/Algorithm & Data Structure
[Swift] 프로그래머스 2019 KAKAO BLIND RECRUITMENT > 오픈채팅방
guswlsdk 2022. 5. 17. 11:57반응형
문제풀이
command는 Enter, Leave, Change 세 가지를 의미한다.
1. command와 Id를 sequence 배열에 저장하며 동시에 Id와 nickName을 딕셔너리로 저장
2. 1번 과정이 끝나면 sequence에 command와 Id에 해당하는 딕셔너리 값을 조합하여 배열에 저장한다.
코드
import Foundation
func solution(_ record:[String]) -> [String] {
var sequence = [[String]]()
var users = [String:String]()
var result = [String]()
for i in record{
let str = i.split(separator: " ")
var command = ""
var userId = ""
var name = ""
if str.count == 2{
command = String(str[0])
userId = String(str[1])
sequence.append([command,userId])
}else if str.count == 3{
command = String(str[0])
userId = String(str[1])
name = String(str[2])
users[userId] = name
sequence.append([command,userId])
}
}
for i in sequence{
let nickName = users[i[1]] ?? ""
if i[0] == "Enter"{
result.append("\(nickName)님이 들어왔습니다.")
}else if i[0] == "Leave"{
result.append("\(nickName)님이 나갔습니다.")
}
}
return result
}
반응형
'Programming > Algorithm & Data Structure' 카테고리의 다른 글
[Swift] 프로그래머스 2021 Dev-Matching: 웹 백엔드 개발자(상반기) > 행렬 테두리 회전하기 (0) | 2022.05.19 |
---|---|
[Swift] 프로그래머스 Summer/Winter Coding(2019) > 멀쩡한 사각형 (0) | 2022.05.18 |
[Swift] 프로그래머스 코딩테스트 연습 > 깊이/너비 우선 탐색 > 타겟 넘버 (0) | 2022.05.16 |
[Swift] 2020 KAKAO BLIND RECRUITMENT 문자열 압축 (0) | 2022.05.15 |
[Swift] 프로그래머스 코딩테스트 연습 > 스택/큐 > 프린터 (0) | 2022.05.12 |