Where who wants to meet someone
백준 Swift [25192] 인사성 밝은 곰곰이 본문
728x90
난이도
실버 IV
문제
https://www.acmicpc.net/problem/25192
25192번: 인사성 밝은 곰곰이
첫번째 새로운 사람이 들어온 뒤 pjshwa, chansol, chogahui05은 모두 곰곰티콘으로 인사했다. 두번째 새로운 사람이 들어온 뒤 pjshwa와 chansol은 다시 곰곰티콘으로 인사했다.
www.acmicpc.net
내 답안
var userName = Set<String>()
var gomgomCount = 0
for _ in 1...Int(readLine()!)! {
let log = readLine()!
if log == "ENTER" {
gomgomCount += userName.count
userName.removeAll()
} else {
userName.insert(log)
}
}
gomgomCount += userName.count
print(gomgomCount)
- "ENTER"를 기준으로 작업을 하면 좋겠다는 생각이 들었고 아래와 같은 작업을 했다.
- 1. 곰곰티콘을 사용한 유저의 이름을 저장할 String 타입의 빈 Set 생성
- 예시에는 각 사람마다 ENTER 이후 한 번씩만 메세지를 보냈지만 두 번씩 보낸 상황을 가정한다면 맨 첫 번째 메세지를 곰곰티콘으로 보낸 사실이 중요하므로 중복을 제거하기 위해 Set을 사용
- 2. 사용된 횟수를 저장하기 위해 gomgomCount 변수 생성
- 3. for문을 통해 채팅방 기록 수만큼 log를 입력 받음
- 4-1. 입력받은 log가 "ENTER"라면 그동안의 userName에 저장된 사람의 수만큼을 gomgomCount에 추가하고 초기화
- 4-2. "ENTER"가 아니라면 userName에 log를 추가
- 5. 3~4 과정에서 "ENTER" 시에만 gomgomCount에 userName이 반영되었기 때문에 gomgomCount에 userName 반영
- 6. gomgomCount 출력
'백준 알고리즘 문제 기록 > 심화 2' 카테고리의 다른 글
백준 Swift [20920] 영단어 암기는 괴로워 (0) | 2023.09.12 |
---|---|
백준 Swift [2108] 통계학 (0) | 2023.09.12 |
백준 Swift [26069] 붙임성 좋은 총총이 (0) | 2023.09.11 |
백준 Swift [1037] 약수 (0) | 2023.09.11 |