본문 바로가기
[ 다먹살 ]/- Coding

[백준] 22233 가희와 키워드

by 엉망으로살기 2023. 3. 14.
반응형

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

 

22233번: 가희와 키워드

1번째 글을 쓰고 난 후에, 메모장에 있는 키워드는 set, floyd, os가 됩니다. 2번째 글을 쓰고 난 후에, 메모장에 있는 키워드는 set, os가 됩니다. map은 1번째 글과 2번째 글에 중복으로 등장하였음을

www.acmicpc.net

 

처음에는 HashMap을 이용해서 키워드별로 숫자를 카운트해야하는 문제인줄 알아서 이 방식으로 구현했었는데, 자꾸 채점할 때 4%에서 올라가지 않아서 문제를 재확인해보았다.

알고보니 키워드의 갯수를 저장해야할 필요가 없는 문제였고, 한 번 사용하면 그 키워드는 메모장에 없는 걸로 간주되기 때문에 HashMap이 아니라 HashSet을 사용해야 하는 문제였다. 일부 코드를 수정한 뒤 간단하게 해결할 수 있었다. (정답률에 비해 매우 쉬운 문제라고 생각한다.)


문제


입출력 예제


코드

import java.util.Scanner;
import java.util.HashSet;

public class Main
{
    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);
        HashSet<String> set = new HashSet<String>();
        int n = sc.nextInt();
        int m = sc.nextInt();
        String buf = sc.nextLine();
        StringBuilder sb = new StringBuilder();
        
        for(int i=0; i<n; i++)
        {
            String temp = sc.nextLine();
            
            if(!set.contains(temp))
            {
                set.add(temp);
            }
        }
        for(int i=0; i<m; i++)
        {
            String[] temp = sc.nextLine().split(",");
            
            for(int j=0; j<temp.length; j++)
            {
                if(set.contains(temp[j]))
                {
                    set.remove(temp[j]);
                }
            }
            
            sb.append(set.size() + "\n");
        }
        
        Syste m.out.print(sb.toString()); 
        sc.close();
        return;
    }
}

반응형

댓글