본문 바로가기

컴퓨터/백준 알고리즘

백준 알고리즘 - 25192번: 인사성 밝은 곰곰이 [Java]

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

 

25192번: 인사성 밝은 곰곰이

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

www.acmicpc.net

1. 코드

import java.util.*;
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		Set <String> set = new HashSet<>();
		int answer = 0;
		while(N-- > 0) {
			String name = sc.next();
			if(name.equals("ENTER")) {
				answer += set.size();
				set.clear();
			}
			else
				set.add(name);
		}
		answer += set.size();
		System.out.println(answer);
	}
}

2. 설명

Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
Set <String> set = new HashSet<>();
int answer = 0;

N은 기록 횟수, set은 채팅한 사람들의 목록, answer는 곰곰티콘의 사용 횟수입니다.

while(N-- > 0) {
    String name = sc.next();
    if(name.equals("ENTER")) {
        answer += set.size();
        set.clear();
    }
    else
        set.add(name);
}

기록을 읽으면서 ENTER가 나오면 set의 크기를 answer에 추가하고 set의 내용을 전부 지웁니다. 아니라면 set에 이름을 추가합니다. 이렇게 된 이유는 ENTER가 나오고 한번이라도 채팅을 치면 곰곰티콘을 사용했다고 간주하며 2번 이상은 일반적인 채팅을 쳤다고 간주하기 때문입니다.

3. 정리

  1. HashSet을 이용하여 중복 입력을 하지않는다.