반응형
이번 글에서는 백준 26069번 문제를
hashSet를 활용해서 풀어보자
문제 핵심
- N : 사람들이 만난 기록 수
- 최대 길이 20의 문자열인 다른 문자열 A와 B가 공백과 함께 한줄에 주어진다.
- ChongChong 기록에서 1회 이상 주어짐
- ChongChong을 만난 사람은 무지개 댄스에 감염
- ( ChongChong과 chongchong은 다른 이름 )
풀이 과정
ChongChong을 만난 순간 무지개 댄스를 추게 된다.
즉, 무지개 댄스를 한 명이라도 추고 있다면 모두 HashSet에 넣는다.
(Hash)Set에서는 중복값을 제외시켜 저장하기 때문에 모든 입력이 끝난 후 HashSet의 크기를 측정 한다.
핵심 코드
1. 한 줄씩 읽어온다.
2. 두 사람 모두 댄스를 무지개 댄스를 추는지 확인
3. 한 명이라도 춘다면 HashSet에 삽입
rainbowDanceHumans.add("ChongChong");
for (int i = 0; i < N; i++) {
stringTokenizer = new StringTokenizer(bufferedReader.readLine());
String firstPerson = stringTokenizer.nextToken();
String secondPerson = stringTokenizer.nextToken();
if(rainbowDanceHumans.contains(firstPerson) || rainbowDanceHumans.contains(secondPerson)) {
rainbowDanceHumans.add(firstPerson);
rainbowDanceHumans.add(secondPerson);
}
}
Set에 특성만 활용한다면 아주 쉽게 풀 수 있는 문제이다.
(추가) 다들 환절기에 몸 조심 하시길 바랍니다.
두통에 2일 간 작성하지 못했네요..
백준 문제뿐만 아니라 Java class나 다양한 예제로 찾아 뵙겠습니다.
전체 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer stringTokenizer;
int N = Integer.parseInt(bufferedReader.readLine());
HashSet<String> rainbowDanceHumans = new HashSet<>();
rainbowDanceHumans.add("ChongChong");
for (int i = 0; i < N; i++) {
stringTokenizer = new StringTokenizer(bufferedReader.readLine());
String firstPerson = stringTokenizer.nextToken();
String secondPerson = stringTokenizer.nextToken();
if(rainbowDanceHumans.contains(firstPerson) || rainbowDanceHumans.contains(secondPerson)) {
rainbowDanceHumans.add(firstPerson);
rainbowDanceHumans.add(secondPerson);
}
}
System.out.println(rainbowDanceHumans.size());
}
}
반응형
'백준 단계별 풀이' 카테고리의 다른 글
[ 백준 25192번 문제 ] 인사성 밝은 곰곰이 - JAVA (2) | 2025.03.09 |
---|---|
[ 백준 1010번 문제 ] 다리 놓기 - JAVA (2) | 2025.03.08 |
[ 백준 11050번 문제 ] 이항 계수 1 - JAVA (2) | 2025.03.05 |
[ 백준 24511번 문제 ] queuestack - JAVA (1) | 2025.03.03 |
[ 백준 2346번 문제 ] 풍선 터뜨리기 - JAVA (2) | 2025.03.02 |