본문 바로가기

Java/백준

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

26069번: 붙임성 좋은 총총이 (acmicpc.net)

 

26069번: 붙임성 좋은 총총이

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

www.acmicpc.net

 

 

- 무지개 댄스를 추지 않고 있던 사람이 무지개 댄스를 추고 있던 사람을 만나게 된디면, 만난 시점 이후로 무지개 댄스를 추게됨

 

- 기록이 시작되기 이전 무지개 댄스를 추고 있는 사람은 총총이 뿐이라고 할 때, 마지막 기록 이후 무지개 댄스를 추는 사람이 몇명인지 구하는 프로그램

 

- 총총이의 이름은 ChongChong으로 주어지며, 기록에서 1회 이상 주어짐

 

 

풀이 과정 

 

- 춤을 춘 사람을 저장하는 용도로 HashSet 사용 

- ChongChong은 무조건 춤을 추니까 HashSet에 먼저 추가

- StringTokenizer을 통해 공백으로 구분된 문자열이 HashSet에 포함된다면 HashSet에 추가 

- HashSet의 크기 출력

 

 

정답

 

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
import java.util.HashSet;

public class Main {
    public static void main(String[] args) throws IOException
    {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        
        HashSet<String> set = new HashSet<String>();
       
        
        int n = Integer.parseInt(br.readLine());
        
        set.add("ChongChong");
        for(int i=0; i<n; i++)
        {
        	StringTokenizer st = new StringTokenizer(br.readLine());
        	
            String person = st.nextToken();
            String friend= st.nextToken();
            
            if(set.contains(person) || set.contains(friend))
            {
            	set.add(person);
            	set.add(friend);
            }

        } 
        
        bw.write(set.size()+"");
        bw.flush();
        bw.close();
        
    }
}