코딩 테스트/JAVA - 백준 단계별로 풀어보기

[백준 Java] 심화 1 - 1316번: 그룹 단어 체커

kms152000 2025. 2. 13. 14:14

 

 

import java.io.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        int N = Integer.parseInt(br.readLine());
        int count = 0;

        for (int i = 0; i < N; i++) {
            String s = br.readLine();
            boolean[] check = new boolean[26];
            boolean isGroup = true;
            char first = s.charAt(0);
            check[first - 'a'] = true;

            for (int j = 1; j < s.length(); j++) {
                char c = s.charAt(j);

                if (c != first) { // 이전 문자와 다를 경우
                    if (check[c - 'a']) { // 이미 등장했던 단어면 그룹 단어 아님
                        isGroup = false;
                        break;
                    }
                    check[c - 'a'] = true; // 새로운 문자일 경우
                }
                first = c; // 현재 문자를 이전 문자로 변경
            }
            if (isGroup) count++;
        }

        bw.write(String.valueOf(count));

        br.close();
        bw.flush();
        bw.close();
    }
}