[백준] 1316 그룹단어체커

문제보기

오랜만에 HashSet 써봤당

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

public class Main{

  public static void main(String []args) throws IOException{
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    int n = Integer.parseInt(br.readLine());
    String[] s = new String[n]; // 주어진 단어를 담을 배열
    for(int i = 0 ; i < n ; i++){
      s[i] = br.readLine();
    }

    int cnt = 0; // 그룹 단어를 저장할 변수
    
    myloop:
    for(int i = 0 ; i < n ; i++ ){
      HashSet<Character> set = new HashSet<>(); // 이미 나온 알파벳 담기
      
      for(int j = 1 ; j < s[i].length() ; j++){
        char now = s[i].charAt(j); // 현재 글자 
        char prev = s[i].charAt(j-1); // 직전 글자

        if( now == prev ){ // 서로 같다면 일단 넘기고
          continue;
        }else{ // 다르다면 
          set.add(prev); // 이전 글자는 이제 set에 저장
          if(set.contains(s[i].charAt(j))){ // 만약 현재 글자가 set에 이미 있는 글자라면
            continue myloop; // 이 단어는 그룹 단어가 아니다 
          }
        }
      }
      cnt++; // 모든걸 다 통과했다면 그룹 단어이므로 세어준다
    }
    System.out.println(cnt);
  }
}

Tags:

Categories:

Updated:

Comments