본문 바로가기
백준

[백준] 26069번 : 붙임성 좋은 총총이 – JAVA [자바]

by Hongwoo 2023. 7. 25.
반응형

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

 

26069번: 붙임성 좋은 총총이

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

www.acmicpc.net

 


  • 문제

 

 


  • 문제 풀이

백준 26069번 붙임성 좋은 총총이는 실버 4 난이도의 자료 구조 및 해시 문제이다. 이 문제에서는 N개의 사람들이 만난 기록이 주어지고, 각 기록에는 두 명씩 있다. 그리고, 춤을 추고 있지 않은 사람이 춤을 추고 있는 사람을 만나게 되면 그 사람도 춤을 추게 된다. 처음에는 총총이만 (ChongChong) 춤을 추고 있다. 이때, 마지막에 총 몇 명의 사람이 춤을 추었는지를 구하면 된다.

 

이 문제는 되게 간단하다. 우선 HashSet를 만들어준다. 이 HashSet에는 춤을 춘 사람을 저장하는 용도로 사용한다. 처음에 총총이를 추가해 준다.

 

문제에서 주어지는 기록에는 2명이 있다. 만약에, 이 두 명 중에 한 사람이라도 이 HashSet에 있으면, 두 명 다 HashSet에 넣어준다. HashSet는 중복된 데이터를 저장하지 않으므로, 두 명 다 넣어도 된다. 그리고, 마지막에 이 HashSet의 크기만 출력해 주면 된다.

 

자세한 코드는 아래에 있는 코드를 참고하면 되겠다.

 


  • 코드

 

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");  //총총이는 무조건 나오므로 추가
        StringTokenizer st;
        for (int i = 0; i < n; i++) {
            st = new StringTokenizer(br.readLine());
            String person1 = st.nextToken();
            String person2 = st.nextToken();
            //춤을 추고 있는 사람을 만나면 춤을 추게 되므로 세트에 추가
            if (set.contains(person1) || set.contains(person2)) {
                set.add(person1);
                set.add(person2);
            }
        }
        System.out.println(set.size());
    }



}

 

반응형

댓글