계단을 오르듯이

[JAVA] 1316. 그룹 단어 체커 본문

알고리즘/백준_JAVA

[JAVA] 1316. 그룹 단어 체커

happyAyun 2022. 2. 4. 06:50

문자열을 받아 각 문자의 방문처리 체크로 문제를 해결하였다.

주석과 코드로 설명을 대체하겠다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package algo;
 
import java.io.BufferedReader;
import java.io.InputStreamReader;
 
public class B_1316_그룹단어체커 {
 
    public static void main(String[] args) throws Exception {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(in.readLine());
        int count = 0;
        boolean[] visited; // 같은 단어의 여부 체크
        for (int i = 0; i < N; i++) {
            visited = new boolean[26]; // 단어마다 새로 갱신
            String str = in.readLine();
            int j = 0// 문자열의 각 단어 인덱스
            boolean flag = true// 그룹단어 참 여부
            while (j < str.length()) { // 각 단어 체크 시작
                int n = str.charAt(j) - 'a';
                if (!visited[n]) { // 처음 방문된 문자
                    visited[n] = true;
                    while (j + 1 < str.length() && str.charAt(j + 1- 'a' == n) { // 같은 문자열이 연속되는지 체크
                        j++;
                    }
                } else { // 그 전에 방문된 문자 -> 그룹 단어 거짓!
                    flag = false;
                    break;
                }
                j++;
            }
            if (flag)
                count++;
        }
        System.out.println(count);
    }
}
 
cs

'알고리즘 > 백준_JAVA' 카테고리의 다른 글

[JAVA] 2638. 치즈  (0) 2022.02.06
[JAVA] 10773. 제로  (0) 2022.02.04
[JAVA] 7569. 토마토  (0) 2022.02.03
[JAVA] 6443. 애너그램  (0) 2022.02.02
[JAVA] 4386. 별자리 만들기  (0) 2022.02.02