728x90
문제링크
https://www.acmicpc.net/problem/14720
문제
영학이는 딸기우유, 초코우유, 바나나우유를 좋아한다.
입맛이 매우 까다로운 영학이는 자신만의 우유를 마시는 규칙이 있다.
맨 처음에는 딸기우유를 한 팩 마신다.
딸기우유를 한 팩 마신 후에는 초코우유를 한 팩 마신다.
초코우유를 한 팩 마신 후에는 바나나우유를 한 팩 마신다
.바나나우유를 한 팩 마신 후에는 딸기우유를 한 팩 마신다.
영학이는 우유 축제가 열리고 있는 우유거리에 왔다. 우유 거리에는 우유 가게들이 일렬로 늘어서 있다.
영학이는 우유 거리의 시작부터 끝까지 걸으면서 우유를 사먹고자 한다.
각각의 우유 가게는 딸기, 초코, 바나나 중 한 종류의 우유만을 취급한다.
각각의 우유 가게 앞에서, 영학이는 우유를 사마시거나, 사마시지 않는다.
우유거리에는 사람이 많기 때문에 한 번 지나친 우유 가게에는 다시 갈 수 없다.
영학이가 마실 수 있는 우유의 최대 개수를 구하여라.
조건
시간제한 : 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
'[C#] 백준 (알고리즘) > 브론즈 문제' 카테고리의 다른 글
[백준 - C#] 1212번 8진수 2진수 (0) | 2022.08.17 |
---|---|
[백준 - C#] 4796번 캠핑 (0) | 2022.08.08 |
[백준 - C#] 14659번 한조서열정리하고옴 (0) | 2022.07.31 |
[백준 - C#] 2810번 컵홀더 (0) | 2022.07.24 |
[백준 - C#] 10162번 전자레인지 (0) | 2022.07.24 |