https://school.programmers.co.kr/learn/courses/30/lessons/42888
1. Swift 풀이
func solution(_ record:[String]) -> [String] {
var user = [String:String]() //id : nickname
var log = [(id: String, isEnter: Bool)]()
for r in record {
let split = r.split(separator: " ").map{ String($0) }
switch split[0] {
case "Enter":
user[split[1]] = split[2]
log.append((split[1], true))
case "Leave":
log.append((split[1], false))
case "Change":
user[split[1]] = split[2]
default: break
}
}
return log.map{
let explain = $0.isEnter ? "님이 들어왔습니다." : "님이 나갔습니다."
return user[$0.id]! + explain
}
}
2. Python 풀이
def solution(record):
user = {}
log = []
for r in record:
split = r.split(" ")
if split[0] == "Enter":
user[split[1]] = split[2]
log.append([0, split[1]])
elif split[0] == "Leave":
log.append([1, split[1]])
else:
user[split[1]] = split[2]
def mapNickname(data):
explain = "들어왔습니다." if data[0] == 0 else "나갔습니다."
return user[data[1]] + "님이 " + explain
return list(map(mapNickname, log))
[프로그래머스] 숫자 게임 (0) | 2024.01.17 |
---|---|
[프로그래머스] 택배상자 (1) | 2024.01.16 |
[프로그래머스] 롤케이크 자르기 (0) | 2024.01.09 |
[프로그래머스] 스킬트리 (1) | 2024.01.08 |
[프로그래머스] 땅따먹기 (1) | 2024.01.04 |