복대가리의 개발

[C#] 백준 (알고리즘)/브론즈 문제

[백준 - C#] 14720번 이장님 초대

복대가리 2022. 8. 1. 23:12
728x90

문제링크

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

 

14720번: 우유 축제

영학이는 딸기우유, 초코우유, 바나나우유를 좋아한다. 입맛이 매우 까다로운 영학이는 자신만의 우유를 마시는 규칙이 있다. 맨 처음에는 딸기우유를 한 팩 마신다. 딸기우유를 한 팩 마신 후

www.acmicpc.net

 

문제

영학이는 딸기우유, 초코우유, 바나나우유를 좋아한다.
입맛이 매우 까다로운 영학이는 자신만의 우유를 마시는 규칙이 있다.
맨 처음에는 딸기우유를 한 팩 마신다.
딸기우유를 한 팩 마신 후에는 초코우유를 한 팩 마신다.
초코우유를 한 팩 마신 후에는 바나나우유를 한 팩 마신다
.바나나우유를 한 팩 마신 후에는 딸기우유를 한 팩 마신다. 
영학이는 우유 축제가 열리고 있는 우유거리에 왔다. 우유 거리에는 우유 가게들이 일렬로 늘어서 있다.
영학이는 우유 거리의 시작부터 끝까지 걸으면서 우유를 사먹고자 한다.
각각의 우유 가게는 딸기, 초코, 바나나 중 한 종류의 우유만을 취급한다.
각각의 우유 가게 앞에서, 영학이는 우유를 사마시거나, 사마시지 않는다.
우유거리에는 사람이 많기 때문에 한 번 지나친 우유 가게에는 다시 갈 수 없다.
영학이가 마실 수 있는 우유의 최대 개수를 구하여라.

조건

시간제한 : 1초
메모리 제한 : 128 MB

입력

첫째 줄에 우유 가게의 수 N이 주어진다. (1 ≤ N ≤ 1000)

둘째 줄에는 우유 가게 정보가 우유 거리의 시작부터 끝까지 순서대로 N개의 정수로 주어진다.

0은 딸기우유만을 파는 가게, 1은 초코우유만을 파는 가게, 2는 바나나우유만을 파는 가게를 뜻하며, 0, 1, 2 외의 정수는 주어지지 않는다.

출력

영학이가 마실 수 있는 우유의 최대 개수를 출력하시오.

 

문제정리

1. 맨처음 딸기우유 0
2. 다음은 초코우유 1
3. 마지막으로 바나나우유 2 마시고 다음은 딸기우유 0

이번 문제의 경우 영학이가 우유를 마실 수 있는 최대 개수를 구하는 문제입니다.

우유 가게를 순차적으로 마시다가 해당하는 우유를 마시지 못할 때는 지나치고 다음걸 확인하면 됩니다.

다시 뒤로 돌아갈 필요도 없기 때문에 순차적으로 확인만 하면 되는 문제입니다.

 

C# 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
static void Main(string[] args)
{
    // 14720 우유축제
    StreamWriter writer = new StreamWriter(OpenStandardOutput());
    StreamReader reader = new StreamReader(OpenStandardInput());
 
    int N = int.Parse(reader.ReadLine());
    string[] input2 = reader.ReadLine().Split();
    int count = 0;
    int nowMilk = 0;
 
    for (int i = 0; i < N; i++)
    {
        int milk = int.Parse(input2[i]); // 현재 우유 가게 정보 가지고오기
 
        if (milk == nowMilk) // 현재 먹어야하는 우유 확인
        {
            count++// 먹은 우유 개수 카운팅
            nowMilk = (nowMilk == 2) ? 0 : ++nowMilk; // 우유 순환, 마지막 바나나우유를 먹었으면 딸기 우유로 변경
        }
    }
 
    writer.WriteLine(count);
 
    writer.Close();
    reader.Close();
}
cs

읽어주셔서 감사합니다 오늘도 즐거운 하루 되세요.

 

728x90