알고리즘 풀이

[C#] 백준 27964번 문제풀이

bimtaeur30 2026. 3. 2. 22:41

문제번호: 27964

문제명: 콰트로치즈피자

문제링크: https://www.acmicpc.net/problem/27964

문제내용과 예제 입/출력은 위 문제 링크에서 확인해 주시기 바랍니다

 

오늘은 콰트로치즈피자라는 문제를 풀었습니다. 이 문제는 입력으로 주어진 치즈 또는 치즈가 아닌 것으로 콰트로치즈를 만들 수 있는지 확인하는 문제입니다. 저는 입력으로 주어진 무언가가 치즈인지 확인하기 위해 IsCheese라는 메서드(불 형식을 반환하는)를 만들었고 이 메서드는 내부에서 EndWiths를 사용하여 끝 단어가 치즈로 끝나는지를 확인합니다. 그 후에 치즈인 것들만 해시셋에 담아 중복을 제거하고 해시셋의 개수와 n의 개수를 비교하여 yummy 또는 sad를 출력합니다.
다음은 정답코드입니다.

public static void Main()
{
    using StreamReader sr = new StreamReader(Console.OpenStandardInput());
    using StreamWriter sw = new StreamWriter(Console.OpenStandardOutput());

    string line1 = sr.ReadLine();
    if (line1 == null) return;
    int N = int.Parse(line1);

    HashSet<string> cheeseSet = new HashSet<string>();

    Find();

    void Find()
    {
        string line2 = sr.ReadLine();
        if (line2 == null) return;

        string[] toppings = line2.Split(' ', StringSplitOptions.RemoveEmptyEntries);

        foreach (string name in toppings)
        {
            if (IsCheese(name))
            {
                cheeseSet.Add(name);
            }
        }

        if (cheeseSet.Count >= 4)
        {
            sw.WriteLine("yummy");
        }
        else
        {
            sw.WriteLine("sad");
        }
    }
}

public static bool IsCheese(string input)
{
    if (string.IsNullOrEmpty(input)) return false;

    return input.EndsWith("Cheese");
}

'알고리즘 풀이' 카테고리의 다른 글

[C#] 백준 18185번 문제풀이  (2) 2026.03.04
[C#] 백준 11004번 문제풀이  (0) 2026.03.03
[C#] 백준 4673번 문제풀이  (0) 2026.03.01
[C#] 백준 1991번 문제풀이  (0) 2026.02.28
[C#] 백준 2470번 문제풀이  (0) 2026.02.27