망나니 AWOS의 일상
article thumbnail
import java.util.Scanner;

class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        // 단어의 개수를 입력받기
        int n = sc.nextInt();
        int count = 0;
        for (int i = 0; i < n; i++) {
            String s = sc.next();

            // checker(s)가 true 인 경우에만 count
            if (checker(s)) {
                count++;
            }
        }
        System.out.println(count);


    }

    public static boolean checker(String s) {

        // 이전 문자를 나타내는 previous
        int previous = 0;
        boolean[] b = new boolean[26];

        // 문자 하나하나 뽑아내기
        for (int j = 0; j < s.length(); j++) {

            // int 형으로 나타내면 해당 문자의 아스키 번호가 나오게 됨.
            int present = s.charAt(j);

            // 이전 문자와 현재 문자가 같지 않을 경우
            if (previous != present) {

                // 소문자 a = 97 ~ z까지 b[0] = a ~ b[25] = z가 됨
                if (!b[present - 'a']) {
                    b[present - 'a'] = true;

                    // 다음 턴에도 이전 문자와 현재 문자를 비교하기 위해서 previous 에 present 를 대입
                    previous = present;

                } else {
                    // 현재 문자가 true(이미 전에 나왔다면) 라면 false 로 함수 종료
                    return false;
                }
            }
        }
        return true;
    }
}

 

2일간 많은 생각과 디버깅... 그리고 질문을 하여 해결했습니다... 흐에....

profile

망나니 AWOS의 일상

@AWOS

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!