1. 문제

25192번: 인사성 밝은 곰곰이



2. 개요

한 오픈 채팅방이 있다.

이 오픈 채팅방은 새로운 사람이 들어오면 곰곰티콘을 이용해 인사를 한다.

새로운 사람이 들어온 이후 처음 채팅을 하는 사람은 항상 곰곰티콘을 이용해 인사한다.

그 외의 기록은 평범한 채팅 기록이다.

이 때 곰곰티콘이 사용된 횟수를 구하는 문제.



3. 풀이 및 코드

3-1. 풀이

인사를 한 사람을 저장해둘 집합 Set(HashSet)을 만들어둔다.

새로운 사람이 입장했다면 이 집합을 초기화한다.

유저의 닉네임이라면 집합에 있는지 확인하고 없다면 답을 1늘리고 집합에 추가시킨다.

모든 입력에 대해 작업을 마쳤다면 답을 출력한다.

3-2. Python

import sys

N = int(sys.stdin.readline())

sayhello = set()
answer = 0

for i in range(N):
    info = sys.stdin.readline().rstrip()

    if info == 'ENTER':
        sayhello.clear()

    elif info not in sayhello:
        sayhello.add(info)
        answer += 1

print(answer)

3-3. C#

namespace boj_25192
{
    internal class Program
    {
        static void Main(string[] args)
        {
            StreamReader sr = new StreamReader(Console.OpenStandardInput());
            StreamWriter sw = new StreamWriter(Console.OpenStandardOutput());

            int N = int.Parse(sr.ReadLine());

            int answer = 0;

            HashSet<string> sayhello = new HashSet<string>();

            for (int i = 0; i < N; i++)
            {
                string info = sr.ReadLine();

                if (info == "ENTER")
                    sayhello.Clear();

                else if (!sayhello.Contains(info))
                {
                    sayhello.Add(info);
                    answer++;
                }
            }

            sw.WriteLine(answer);
            sw.Close();
        }
    }
}

Comments