개발하자

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

Algorithms/Baekjoon

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

개발리미 2025. 4. 29. 11:54
728x90

안녕하세요 :)

적어도 하루 1개 이상 알고리즘 문제를 해결하려 노력하고 있습니다.

혼자 해결 가능한 문제도 있고, 어려웠던 문제도 있던 차라 복습하고자  글을 써 내려갑니다.

 


 

백준 26069 붙임성 좋은 총총이

이번 문제는 간단한 Set 자려구조를 활용하여 빠르게 풀 수 있었던 문제였습니다.

문제를 정확히 읽고 총총이와 연결된 사람을 잘 추적하는 것이 핵심이었어요.

 

📘 문제

 

💡 해결 방법

총총이는 다른 사람과 춤을 출 수 있고, 총총이와 춤을 춘 사람이 또 다른 사람과 춤을 추면 그 사람도 춤을 출 수 있게 됩니다.

최종적으로 춤을 출 수 있는 사람의 수를 구하는 문제네요.

핵심 아이디어는 간단합니다.

총총이와 연결된 사람을 관리하는 Set을 만들고 처음에는 총총이(ChongChong)만 포함시킵니다.

매 입력마다 두 사람이 등장할 때, 둘 중 하나라도 Set에 있으면 두 사람 모두 Set에 추가 하면

최종적으로 Set의 크기가 춤을 출 수 있는 사람 수가 됩니다.

 

✅ 풀이 및 설명 (설명은 더보기 클릭)

더보기

 

  • 첫 줄에 입력되는 수 n은 춤을 춘 기록의 수입니다.
  • Set<String> set을 만들어 총총이와 연결된 사람들을 관리합니다.
  • 시작할 때 "ChongChong"을 Set에 추가해둡니다.
  • 입력마다 사람 두 명이 등장합니다.
    • 둘 중 한 명이라도 Set에 있으면, 둘 다 Set에 추가합니다.
  • 최종적으로 Set에 있는 사람의 수를 출력합니다.

 

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());

        Set<String> set = new HashSet<>();
        set.add("ChongChong");
        for (int i = 0; i < n; i++) {
            String[] input = br.readLine().split(" ");
            if (set.contains(input[0]) || set.contains(input[1])) {
                set.add(input[0]);
                set.add(input[1]);
            }
        }

        System.out.print(set.size());
        br.close();
    }
}

 

이 문제는 Set 자료구조를 이용해 중복 없이 사람들을 관리하는 연습이 되는 좋은 문제였습니다.

또한 연결 관계를 단계별로 추적하는 연습도 함께 할 수 있었어요.

 


공부하면서 유용했던 부분 메모 겸 공유하고자 끄적입니다.

고쳐야 하는 부분 있다면 댓글 남겨주시면 수정하겠습니다.

행복한 하루 보내세요 (❁´◡`❁)

728x90
반응형