본문 바로가기

알고리즘(백준 등) 공부/백준(자바)

백준 1316번 그룹 단어 체커

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

 

단어의 모든 문자가 떨어져있지 않고 붙어 있는 문자를 그룹 단어라 할 때, 주어진 단어 중 그룹 단어의 갯수를 출력하는 문제이다.

ex) aab -> 그룹 문자임    aaba -> a가 따로 떨어져 있으므로 그룹 단어가 아님

 

단어들에 대해서 각각 Set<Character> 을 이용하여 이미 단어에 있으면서 떨어져 있는 문자를 찾게 되면 이는 그룹 문자가 아니며, 이러한 방식으로 단어의 끝까지 확인하여 떨어져 있는 문자가 없다면 갯수를 증가시킨다.

결과 코드는 다음과 같다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.Set;

public class 그룹단어체커 {
    
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        int count = 0;
        outer:
        for (int i = 0; i < n; i++) {
            Set<Character> set = new HashSet<>();
            String word = br.readLine();
            set.add(word.charAt(0));
            for (int j = 1; j < word.length(); j++) {
                if (word.charAt(j) == word.charAt(j - 1)) {
                    continue;
                }
                if (!set.add(word.charAt(j))) {
                    continue outer;
                }
            }
            count++;
        }
        
        br.close();
        System.out.print(count);
    }
}

'알고리즘(백준 등) 공부 > 백준(자바)' 카테고리의 다른 글

백준 1323번: 숫자 연결하기  (0) 2026.03.17
백준 1322번: X와 K  (0) 2026.03.16
백준 1313번 합성소수  (0) 2026.03.14
백준 1312번: 소수  (0) 2026.03.13
백준 1311번: 할 일 정하기 1  (0) 2026.03.12