https://www.acmicpc.net/problem/10384
10384번: 팬그램
팬그램은 모든 알파벳을 적어도 한 번씩을 사용한 영어 문장을 말한다. 다음은 유명한 팬그램 중 하나이다. The quick brown fox jumps over a lazy dog 더블 팬그램은 모든 알파벳을 적어도 두 번씩은 사용
www.acmicpc.net

A~Z까지 key로 만들어주고 key 값을 계속 돌면서 세주었다.
Pangram의 수를 어떻게 셀지 고민했는데 제일 작은 수를 출력하면 되는 거였다..
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
int cnt = Integer.parseInt(bf.readLine());
HashMap<Character, Integer> az = new HashMap<>();
for (int i = 'a'; i <= 'z'; i++) {
az.put((char) i, 0);
}
for (int i = 0; i < cnt; i++) {
String str = bf.readLine();
str = str.toLowerCase();
HashMap<Character, Integer> map = new HashMap<>();
for (int j = 0; j < str.length(); j++) {
for (Character c : az.keySet()) {
if (str.charAt(j) == c) {
map.put(c, map.getOrDefault(c, 0) + 1);
break;
}
}
}
int min = Integer.MAX_VALUE;
for (Character c : az.keySet()) {
if (map.getOrDefault(c, 0) == 0) {
min = 0;
break;
}else{
if(min > map.get(c)){
min = map.get(c);
}
}
}
if(min >=3){
System.out.println("Case " + (i+1) + ": Triple pangram!!!");
}else if(min == 2){
System.out.println("Case " + (i+1) + ": Double pangram!!");
}else if(min == 1){
System.out.println("Case " + (i+1) + ": Pangram!");
}else{
System.out.println("Case " + (i+1) + ": Not a pangram");
}
}
}
}
'알고리즘' 카테고리의 다른 글
[백준] 7569번 : 토마토 (0) | 2023.03.06 |
---|---|
[백준] 16499번 : 동일한 단어 그룹화하기 (0) | 2023.03.05 |
[백준] 1439번 : 뒤집기 (0) | 2023.03.04 |
[백준] 17413번 : 단어 뒤집기 2 (0) | 2023.03.03 |
[백준] 14490번 : 백대열 (1) | 2023.02.27 |