공부하기/백준

[Java] 백준 풀기 27964 - 콰트로치즈피자

XEV 2024. 3. 27. 22:11

자바 백준 27964번

실버 5

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

 

27964번: 콰트로치즈피자

치즈와 피자에 환장하는 비행씨는 매일같이 치즈피자를 사 먹다가 지갑이 거덜 나고 말았다. 만들어 먹는 것이 사 먹는 것보다 싸다는 것을 안 비행씨는 여러 가지 토핑을 가져와서 직접 피자를

www.acmicpc.net

 

 

 

 

 

문제 보기

분류: 구현, 자료 구조, 문자열, 해시를 사용한 집합과 맵

 

 

 

 

 

코드 풀이

import java.util.Scanner;
import java.util.HashSet;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 토핑의 개수 입력
int n = sc.nextInt();
// PizzaMaker 객체 생성
PizzaMaker pizzaMaker = new PizzaMaker();
// 토핑 추가
for (int i = 0; i < n; i++) {
String inputTopping = sc.next();
pizzaMaker.addTopping(inputTopping);
}
// 콰트로치즈피자 만들기 가능 여부 확인 및 출력
if (pizzaMaker.canMakeQuattroCheesePizza()) {
System.out.println("yummy");
} else {
System.out.println("sad");
}
}
}
// 피자를 만드는 클래스
class PizzaMaker {
// 중복이 없는 토핑을 저장하기 위한 HashSet
private HashSet<String> uniqueToppings;
// constructor
public PizzaMaker() {
uniqueToppings = new HashSet<>();
}
// 토핑 추가 메서드
public void addTopping(String topping) {
uniqueToppings.add(topping);
}
// 콰트로치즈피자를 만들 수 있는지 확인하는 메서드
public boolean canMakeQuattroCheesePizza() {
// 치즈 토핑의 개수를 저장하기 위한 변수
int cheeseCount = 0;
// 토핑 목록을 순회하며 치즈 토핑의 개수 계산
for (String topping : uniqueToppings) {
if (topping.endsWith("Cheese")) { // 토핑이 "Cheese"로 끝나면
cheeseCount++; // 치즈 토핑 개수 증가
// System.out.println(cheeseCount);
}
}
// 치즈 토핑 개수가 4개 이상이면 콰트로치즈피자를 만들 수 있음
return cheeseCount >= 4;
}
}