본문 바로가기
코딩테스트 준비/백준

[백준] 1316번 - 그룹 단어 체커 [Java]

by mwzz6 2025. 2. 6.

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

 

[백준] 1316번 - 그룹 단어 체커 [Java]
[백준] 1316번 - 그룹 단어 체커 [Java]
[백준] 1316번 - 그룹 단어 체커 [Java]


1.  아이디어

 

각 알파벳에 대한 방문체크를 한 후 방문한 알파벳을 만났을 때 이전 알파벳과 현재 알파벳이 다르면 그룹 단어가 아님을 이용하면 간단하게 해결할 수 있다.


2. 문제풀이

 

알파벳 소문자만 등장하므로 26칸 짜리 방문체크 배열을 만들고 첫번째 알파벳을 방문 체크한 뒤 두번째 알파벳부터 마지막 알파벳까지 방문한 알파벳을 만났을 때 이전 알파벳과 동일하지 않으면 종료하는 방식으로 구현했다.


3. 코드

 

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());

        int cnt = 0;

        out:
        for (int i = 0; i < N; i++) {
            char[] input = br.readLine().toCharArray();
            boolean[] visited = new boolean[26];
            visited[input[0] - 'a'] = true;

            for (int j = 1; j < input.length; j++) {
                if ((input[j] != input[j - 1]) && visited[input[j] - 'a']) continue out;
                visited[input[j] - 'a'] = true;
            }

            cnt++;
        }

        System.out.println(cnt);
    }
}

4. 후기