문제 내용은 ” ” 으로 분리된 문자열을 받아서 “Cheese” 로 끝나는 값이 4개가 넘는지 확인해야 하는데, 대소문자는 구별하지만 동일한 문자열은 10번씩 들어와도 한 번만 계산되므로 이걸 주의해야 한다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Iterator;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int count = Integer.parseInt(br.readLine());
String[] arr = br.readLine().split(" ");
HashSet<String> set = new HashSet<>(Arrays.asList(arr));
Iterator<String> iterator = set.iterator();
int cheeseCounter = 0;
while (iterator.hasNext()) {
String s = iterator.next();
if (s.endsWith("Cheese")) {
cheeseCounter++;
}
}
if (cheeseCounter >= 4) {
System.out.println("yummy");
} else {
System.out.println("sad");
}
}
}
문제를 풀어보자면 대소문자는 구별하지면, 중복은 허용하지 않으므로 Set에 몽땅 넣어주면 중복 문제를 피할 수 있고 Iterator를 이용해 꺼내주면서 텍스트가 “Cheese” 로 끝나는 항목만 센 뒤 4개 이상이면 yummy, 4개 미만이라면 sad를 출력해주면 끝이다
Leave a Reply