본문 바로가기
백준

[백준] 25192번 : 인사성 밝은 곰곰이 – JAVA [자바]

by Hongwoo 2023. 7. 26.
반응형

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

 

25192번: 인사성 밝은 곰곰이

첫번째 새로운 사람이 들어온 뒤  pjshwa, chansol, chogahui05은 모두 곰곰티콘으로 인사했다. 두번째 새로운 사람이 들어온 뒤  pjshwa와 chansol은 다시 곰곰티콘으로 인사했다.

www.acmicpc.net

 


  • 문제

 

 


  • 문제 풀이

백준 25192번 인사성 밝은 곰곰이는 실버 4 난이도의 자료 구조 및 해시 문제이다. 이 문제에서는 N개의 채팅 방 기록이 주어진다. 그리고 채팅 기록은 ENTER나 아니면 유저의 닉네임이다. ENTER는 새로운 사람의 입장을 나타낸다. 이때, 새로운 사람이 입장한 이후 처음 채팅을 입력하는 사람은 반드시 곰곰티콘으로 인사를 한다. 그 외의 기록은 곰곰티콘을 쓰지 않은 평범한 채팅 기록이다. 이때, 채팅 기록 중 곰곰티콘이 사용된 횟수를 구하면 된다.

 

이 문제는 HashSet을 이용해서 풀 수 있다. ENTER키가 입력되고 그다음에 처음 채팅을 한 사람은 모두 곰곰티콘을 사용한다. 즉, ENTER키가 사용되고 처음 채팅한 사람의 수를 세면 된다.

 

처음 채팅한 지를 확인하기 위해서 HashSet을 이용해 준다. 즉, ENTER키 이후에 나온 닉네임을 HashSet에 넣어주고 count를 1씩 증가시켜 준다. 만약, 이미 HashSet에 있으면 무시하고 진행한다. 그리고, ENTER키가 나오면 이 HashSet을 초기화시켜 준다.

 

초기화는 Set의 clear() 함수를 사용하면 된다.

 

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

 


  • 코드

 

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());
        int num = 0;
        Set<String> set = new HashSet<>();
        for (int i = 0; i < n; i++) {
            String s = br.readLine();
            if (s.equals("ENTER")) {
                set.clear();
            } else {
                if (set.contains(s)) continue;
                set.add(s);
                num++;
            }
        }
        System.out.println(num);
    }
}

 

 

반응형

댓글