Where who wants to meet someone

백준 Swift [26069] 붙임성 좋은 총총이 본문

백준 알고리즘 문제 기록/심화 2

백준 Swift [26069] 붙임성 좋은 총총이

Lust3r 2023. 9. 11. 18:35
728x90

난이도

실버 IV

 

문제

https://www.acmicpc.net/problem/26069

 

26069번: 붙임성 좋은 총총이

첫번째 줄에는 사람들이 만난 기록의 수 $N\ (1 \le N \le 1\ 000)$이 주어진다. 두번째 줄부터 $N$개의 줄에 걸쳐 사람들이 만난 기록이 주어진다. $i + 1$번째 줄에는 $i$번째로 만난 사람들의 이름 $A_i$

www.acmicpc.net

 

내 답안

var dancingPeople: Set<String> = ["ChongChong"]

for _ in 1...Int(readLine()!)! {
    let meeting = readLine()!.split(separator: " ").map { String($0) }

    let firstPerson = meeting[0]
    let secondPerson = meeting[1]

    if dancingPeople.contains(firstPerson) {
        dancingPeople.insert(secondPerson)
    } else if dancingPeople.contains(secondPerson) {
        dancingPeople.insert(firstPerson)
    }
}

print(dancingPeople.count)
  • 춤추는 사람을 별도로 관리하고, 그 사람을 만났을 때 다른 한 사람을 그 그룹에 넣어주면 된다고 생각했다.
  • 1. 초기 dancingPeople에는 ChongChong만 있다.
  • 2. for문을 돌면서 meeting이 이뤄지고, firstPerson과 secondPerson을 구분
  • 3-1. firstPerson이 dancingPeople에 있으면 secondPerson을 그룹에 추가
    3-2. secondPerson이 dancingPeople에 있으면 firstPerson을 그룹에 추가
    3-3. 둘 다 그룹에 없으면 아무 일도 일어나지 않음
  • 4. dancingPeople 그룹의 count 출력