정코딩
Home
  • 분류 전체보기 (421)
    • 알고리즘 (382)
      • Baekjoon (301)
      • SW Academy (39)
      • JUNGOL (7)
      • 프로그래머스 (33)
    • CS (4)
      • 알고리즘 (1)
    • 공부 (19)
      • JAVA (6)
      • BackEnd (4)
      • FrontEnd (3)
      • 프로젝트 (6)
    • 일상 (16)
      • 기타 (16)
Home
  • 분류 전체보기 (421)
    • 알고리즘 (382)
      • Baekjoon (301)
      • SW Academy (39)
      • JUNGOL (7)
      • 프로그래머스 (33)
    • CS (4)
      • 알고리즘 (1)
    • 공부 (19)
      • JAVA (6)
      • BackEnd (4)
      • FrontEnd (3)
      • 프로젝트 (6)
    • 일상 (16)
      • 기타 (16)
블로그 내 검색
Portfolio

정코딩

동의대학교 컴퓨터공학과 SSAFY 6기

  • 알고리즘/Baekjoon

    Baekjoon 22233 가희와 키워드 JAVA

    2022. 6. 24.

    by. soonil

     

    22233번: 가희와 키워드

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

    www.acmicpc.net

    문제

    가희는 블로그를 운영하고 있습니다. 가희는 블로그에 글을 쓰기 위해, 메모장에 키워드를 적곤 합니다.

    지금까지 메모장에 써진 키워드는 모두 서로 다르며, 총 N개가 존재합니다.

    가희는 새로운 글을 작성할 때, 최대 10개의 키워드에 대해서 글을 작성합니다.

    이 키워드들 중에 메모장에 있었던 키워드는 가희가 글을 쓴 이후, 메모장에서 지워지게 됩니다.

    가희는 블로그에 글을 쓰고 나서, 메모장에 있는 키워드 개수가 몇 개인지 알고 싶습니다. 가희를 도와주세요.

     

    조건

    [입력]

    첫 번째 줄에 가희가 메모장에 적은 키워드 개수 N, 가희가 블로그에 쓴 글의 개수 M이 공백으로 구분해서 주어집니다.

    2번째 줄부터 N+1번째 줄까지 메모장에 적은 키워드 N개가 주어집니다.

    N+2번째 줄부터 N+M+1번째 줄까지, 가희가 쓴 글과 관련된 키워드가 , (쉼표)로 구분해서 주어집니다. 공백으로 구분되지 않음을 유의해 주세요.

     

    [출력]

    x번째 줄에는 x번째 글을 쓰고 난 후에 메모장에 남아 있는 키워드의 개수를 출력해 주세요.

     

    풀이

    해당 문제는 처음 키워드가 주어지고 이후 사용한 키워드가 주어졌을 때 사용할 때마다 사용하지 않은 남아있는 키워드 개수를 출력하는 문제다.

    해당 문제는   set을 이용하여 해결했으며 로직은 아래와 같다.

     

    1. 먼저 저장된 키워드를 셋에 저장한다.

    2. 입력값을 입력받으면서 파싱 한다.

    3. 입력값이 셋에 있는지 체크하고 있으면 제거해준다.

    4. 셋의 사이즈를 출력한다.

     

    코드
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.util.HashSet;
    import java.util.Set;
    import java.util.StringTokenizer;
    
    public class Main {
    
    	public static void main(String[] args) throws Exception{
    		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());
    
    		Set<String> set = new HashSet<>();
    		for (int i = 0; i < N; i++) { //처음 키워드를 모두 추가한
    			set.add(br.readLine());
    		}
    		
    		for (int i = 0; i < M; i++) { //사용 키워드를 입력받아 파싱한
    			st = new StringTokenizer(br.readLine(),",");
    			while(st.hasMoreTokens()) {
    				String s = st.nextToken();
    				if(set.contains(s)) // 파싱한 키워드가 존재하면 제거한
    					set.remove(s);
    			}
    			System.out.println(set.size());// 사이즈 출
    		}
    		
    	}
    
    }

     

     

     

    GitHub - JUNGSOONIL/Algorithm-JAVA: 알고리즘 문제 해결 자바 소스 코드

    알고리즘 문제 해결 자바 소스 코드. Contribute to JUNGSOONIL/Algorithm-JAVA development by creating an account on GitHub.

    github.com

     

    728x90

    '알고리즘 > Baekjoon' 카테고리의 다른 글

    Baekjoon 1459 걷기 JAVA  (0) 2022.06.27
    Baekjoon 3187 양치기 꿍 JAVA  (0) 2022.06.25
    Backjoon 11478 서로 다른 부분 문자열의 개수 JAVA  (0) 2022.06.23
    Baekjoon 2072 오목 JAVA  (0) 2022.06.23
    Baekjoon 16918 봄버맨 JAVA  (0) 2022.06.22

    댓글

    관련글

    • Baekjoon 1459 걷기 JAVA 2022.06.27
    • Baekjoon 3187 양치기 꿍 JAVA 2022.06.25
    • Backjoon 11478 서로 다른 부분 문자열의 개수 JAVA 2022.06.23
    • Baekjoon 2072 오목 JAVA 2022.06.23
    맨 위로
전체 글 보기
  • Baekjoon
  • Solved
  • Github
Tistory 로그인
Tistory 로그아웃
로그아웃 글쓰기 관리

Today

Total

Designed by Nana
블로그 이미지
soonil

티스토리툴바