알고리즘/백준

[백준] 그룹 단어 체커_자바

Ellie67 2022. 11. 10. 23:51

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

 

1316번: 그룹 단어 체커

그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때

www.acmicpc.net

 

문자열로 문자 배열 만듦.

 

바로 앞 문자와 비교해서 같으면 넘어가고

다른데 이전에 나온적 있다면 그룹 단어가 아님, 나온적 없다면 그룹 단어가 될 수 있음

 

이전에 나왔는지 확인하기 위해 알파벳 개수 크기로 int 배열 만들었다.

문자 배열에서 나온 알파벳을 확인하려면 확인 배열 인덱스가 알파벳-97인 부분 값이 1인지 확인하려고 했다.

 

1이면 이전에 나온 알파벳이고 그룹 단어 아님, 0이면 처음 나온 알파벳

 

import java.util.Scanner;

public class P1316 {
    static char[] ch;
    static int[] a;
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int tmp = n;
        for(int i=0; i<n; i++){
            a = new int[26]; // 알파벳 개수만큼 
            ch = sc.next().toCharArray();
            a[ch[0]-97] = 1;
            boolean flag = true;
            for(int j=1; j<ch.length; j++){
                if(ch[j]!=ch[j-1]) {
                    if(a[ch[j]-97]==1) {
                        flag = false;
                    }
                    else {
                        a[ch[j]-97] = 1;
                    }
                }
            }
            if(!flag) {
                tmp--;
            }
        }
        System.out.println(tmp);
    }
}

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

[백준] 수들의 합_자바  (0) 2022.11.12
[백준] 통계학_자바  (0) 2022.11.10
[백준] 색종이_자바  (0) 2022.11.10
[백준]자바_3003번_킹, 퀀, 룩, 비숍, 나이트, 폰  (0) 2021.04.27
[백준]자바_2914번_저작권  (0) 2021.04.27