Where who wants to meet someone
백준 Swift [7785] 회사에 있는 사람 본문
728x90
난이도
실버 V
문제
https://www.acmicpc.net/problem/7785
내 답안
var companyLog = [String : String]()
for _ in 1...Int(readLine()!)! {
let input = readLine()!.split(separator: " ").map { String($0) }
companyLog.updateValue(input[1], forKey: input[0])
}
print(companyLog.filter { $0.value == "enter" }.map { $0.key }.sorted(by: >).joined(separator: "\n"))
- 처음에는 구조체를 사용해야 하나 했었는데, dictionary로 해서 각 사람마다 update를 해주면 되겠다 하는 생각에 다다랐다.
- 로그의 수만큼 for문을 돌며 입력받은 값을 통해 이름을 key, 상태를 value로 하여 updateValue를 해준다
- 이후는 다음의 과정을 따른다
- 1. companyLog에 filter 메서드를 사용하여 value가 "enter"인(퇴근을 하지 않은) 직원을 찾는다
- 2. map을 통해 value가 "enter"인 직원의 key값만 뽑는다
- 3. sorted(by: >)를 사용하여 사전의 역순으로 정렬한다
- 4. joined(separator: "\n")을 사용하여 각 직원의 이름을 한 줄 띄우는 형식으로 출력
'백준 알고리즘 문제 기록 > 집합과 맵' 카테고리의 다른 글
백준 Swift [1764] 듣보잡 (0) | 2023.08.11 |
---|---|
백준 Swift [10816] 숫자 카드 2 (0) | 2023.08.11 |
백준 Swift [1620] 나는야 포켓몬 마스터 이다솜 (0) | 2023.08.11 |
백준 Swift [14425] 문자열 집합 (0) | 2023.08.08 |
백준 Swift [10815] 숫자 카드 (0) | 2023.08.08 |