본문 바로가기
PS/BOJ

[자바] 백준 5704 - 팬그램 (boj java)

by Nahwasa 2022. 6. 17.

문제 : boj5704

 

  각 문자마다 a~z가 모두 있는지 확인하면 된다. 'a'~'z'는 0~25로 표현 가능하므로 26칸짜리 배열 arr에 각 소문자가 나온 횟수를 세보자. 그럼 arr[i]가 1이 되는 경우, 해당 문자가 존재하는게 된다. 따라서 별도로 cnt라는 변수를 둬서 arr[i]가 1이 되는 경우 증가시킨다. 최종적으로 cnt가 26이라면 모든 문자가 있는 것이고, 아니라면 뭔가 빠진 문자가 있는 셈이다.

 

코드 : github

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;

public class Main {
    private void solution() throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String s = "";
        StringBuilder sb = new StringBuilder();
        while (true) {
            s = br.readLine();
            if (s.equals("*")) break;
            int cnt = 0;
            int[] arr = new int['Z'-'A'+1];
            for (int i = 0; i < s.length(); i++) {
                char c = s.charAt(i);
                if (c<'a' || c>'z') continue;
                if (++arr[c-'a']==1) cnt++;
            }
            sb.append(cnt==26?'Y':'N').append('\n');
        }
        System.out.print(sb);
    }
    public static void main(String[] args) throws Exception {
        new Main().solution();
    }
}

댓글