• Home
  • About
    • Ryureka Moment photo

      Ryureka

      Sin Prisa, Sin Pausa

    • About Me
    • Facebook
    • Github
    • Youtube
  • Projects
  • Posts
    • Posts
    • ProblemSolvings
    • Tags
    • Blog
    • Examples
  • ProblemSolving
    • ProblemSolving
    • BOJ
    • Programmers
    • SWEA
    • LeetCode
  • FrontEnd
    • FrontEnd
    • HTML
  • BackEnd
    • BackEnd
    • Server
      • Server
      • Spring
      • NodeJS
    • DataBase
      • DataBase
      • MySQL
      • MongoDB
  • Programming
    • Programming
    • Java
    • JS
    • Python
    • CleanCode
  • ComputerScience
    • DataStructure
    • Algorithm

[BOJ] 26069. 붙임성 좋은 총총이

15 Apr 2026

Reading time ~1 minute

  • 풀이

풀이

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

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));
		int N = Integer.parseInt(br.readLine());
		int answer = 0;

		HashSet<String> set = new HashSet<>();
		StringBuilder comparedStr = new StringBuilder("ChongChong");
		StringBuilder input = new StringBuilder();
		while(N-- > 0) {
			String s = br.readLine();
			StringTokenizer st = new StringTokenizer(s);
			String s1 = st.nextToken();
			String s2 = st.nextToken();
			// 앞에 꺼 먼저 가져온다.
			// 앞에 꺼가 토끼 춤추는 문자열이면
			set.add(comparedStr.toString());
			
			if(set.contains(s1)) { 				
//				System.out.println("N1 : " + N);
//				System.out.println("comparedStr : " + comparedStr);
				// 뒤에꺼를 정답에 넣는다.
				set.add(s2);
//				System.out.println("comparedStr : " + comparedStr);
//				System.out.println("set.size() : " + set.size());
				continue;
			};

			// 뒤에 꺼가 토끼 춤추는 문자열이면
			if(set.contains(s2)){
				// 앞에 꺼를 정답에 넣는다.
				set.add(s1);
//				System.out.println("N2 : " + N);
//				System.out.println("comparedStr : " + comparedStr);				
			};
		}		
				
		bw.write(set.size() + " ");
		bw.close();				
	}
}
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.HashSet;
import java.util.StringTokenizer;

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));
		int N = Integer.parseInt(br.readLine());
		int answer = 0;

		HashSet<String> set = new HashSet<>();
		StringBuilder comparedStr = new StringBuilder("ChongChong");
		StringBuilder input = new StringBuilder();
		while(N-- > 0) {
			String s = br.readLine();
			StringTokenizer st = new StringTokenizer(s);
			String s1 = st.nextToken();
			String s2 = st.nextToken();
			// 토끼 춤추는 문자열을 넣는다.
			set.add(comparedStr.toString());
            
			// 앞에 꺼가 토끼 춤추는 문자열이면
			if(set.contains(s1)) { 				
				// 뒤에꺼를 정답에 넣는다.
				set.add(s2);
				continue;
			};

			// 뒤에 꺼가 토끼 춤추는 문자열이면
			if(set.contains(s2)){
				// 앞에 꺼를 정답에 넣는다.
				set.add(s1);		
			};
		}		
				
		bw.write(set.size() + " ");
		bw.close();				
	}
}


자료구조해시를 사용한 집합과 맵 Share