[백준 / 22233 / 가희와 키워드 / Java]

련지·2024년 8월 11일

코딩 테스트

목록 보기
7/9

오늘의 1솔 ♬

오늘의 문제는 백준의 Silver 3 가희와 키워드 !
바로 풀고 싶다면 요기로 → 문제 바로가기

문제 설명

  1. 가희는 블로그에 쓸 키워드가 N개 적힌 메모장을 가지고 있다
  2. 새 글을 작성할 때마다 최대 10개의 키워드를 등록할 수 있고, 등록한 키워드가 메모장에 있던 것이라면 메모장에서 지운다
  3. M개의 글을 작성하며 등록한 키워드가 주어질 때, 최종적으로 메모장에 남아 있는 키워드 개수를 구해라

풀이

접근 방법

  1. 메모장에 적힌 문자들을 HashSet에 넣는다
  2. 블로그에 쓴 키워드들을 , 로 구분한 다음, HashSet에서 하나씩 없앤다
  3. 글 하나를 작성할 때마다 2번 과정을 수행하고, HashSet의 사이즈(메모장에 남은 키워드의 개수) 를 출력한다

HashSet

문제 조건에 메모장에 있는 키워드 이름은 중복되지 않습니다. 라는 조건이 있어서 Map이 아니라 Set을 썼다
만약 메모장에 있는 키워드가 중복됐다면, {키워드 이름}: {키워드 개수} 로 된 Map을 썼을 것이다

코드

package a2408;

import java.io.*;
import java.util.*;

public class d11_bj_s3_22233_가희와_키워드 {
    public static void main(String[] args) throws Exception{
        StringBuilder sb = new StringBuilder();
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int N = Integer.parseInt(st.nextToken());
        int M = Integer.parseInt(st.nextToken());
        HashSet<String> set =  new HashSet<>();
        for(int n=0; n<N; n++){
            set.add(br.readLine());
        }
        for(int m=0; m<M; m++){
            st = new StringTokenizer(br.readLine(), ",");
            while(st.hasMoreTokens()){
                set.remove(st.nextToken());
            }
            sb.append(set.size()).append("\n");
        }
        System.out.println(sb);
    }
}

마무리

오늘자 문제에 짤은 무조건 이거 써야겠다 하고 찾았는데
짤 찾는 도중 가희언냐한테 뼈 맞아서 조굼 아프다

열심히 할게요 언냐...

profile
기술 블로그도 재미있을 수 있잖아요

0개의 댓글