반응형
[ 문제 ]
영학이는 딸기우유, 초코우유, 바나나우유를 좋아한다.
입맛이 매우 까다로운 영학이는 자신만의 우유를 마시는 규칙이 있다.
1. 맨 처음에는 딸기우유를 한 팩 마신다.
2. 딸기우유를 한 팩 마신 후에는 초코우유를 한 팩 마신다.
3. 초코우유를 한 팩 마신 후에는 바나나우유를 한 팩 마신다.
4. 바나나우유를 한 팩 마신 후에는 딸기우유를 한 팩 마신다.
영학이는 우유 축제가 열리고 있는 우유거리에 왔다. 우유 거리에는 우유 가게들이 일렬로 늘어서 있다.
영학이는 우유 거리의 시작부터 끝까지 걸으면서 우유를 사먹고자 한다.
각각의 우유 가게는 딸기, 초코, 바나나 중 한 종류의 우유만을 취급한다.
각각의 우유 가게 앞에서, 영학이는 우유를 사마시거나, 사마시지 않는다.
우유거리에는 사람이 많기 때문에 한 번 지나친 우유 가게에는 다시 갈 수 없다.
영학이가 마실 수 있는 우유의 최대 개수를 구하여라.
[ 코드 ]
1. 내 코드
StreamReader sr = new StreamReader(new BufferedStream(Console.OpenStandardInput()));
StreamWriter sw = new StreamWriter(new BufferedStream(Console.OpenStandardOutput()));
int n = int.Parse(sr.ReadLine());
int[] arr = sr.ReadLine().Split().Select(int.Parse).ToArray();
int max = 0;
int value = 0;
for (int i = 0; i < n; i++)
{
if (arr[i] == 0 && value == 0)
{
max++;
value = 1;
}
if (arr[i] == 1 && value == 1)
{
max++;
value = 2;
}
if (arr[i] == 2 && value == 2)
{
max++;
value = 0;
}
}
sw.Write(max);
sw.Flush();
sw.Close();
sr.Close();
2. 다른 사람 코드
StreamReader sr = new StreamReader(new BufferedStream(Console.OpenStandardInput()));
StreamWriter sw = new StreamWriter(new BufferedStream(Console.OpenStandardOutput()));
int n = int.Parse(sr.ReadLine());
int[] arr = sr.ReadLine().Split().Select(int.Parse).ToArray();
int max = 0;
bool a = true;
bool b = false;
bool c = false;
for (int i = 0; i < n; i++)
{
if (a)
{
if (arr[i] != 0)
{
continue;
}
else
{
max++;
a = false;
b = true;
}
}
if (b)
{
if (arr[i] != 1)
{
continue;
}
else
{
max++;
b = false;
c = true;
}
}
if (c)
{
if (arr[i] != 2)
{
continue;
}
else
{
max++;
c = false;
a = true;
}
}
}
sw.Write(max);
sw.Flush();
sw.Close();
sr.Close();
[ 실행화면 ]
문제링크: https://www.acmicpc.net/problem/14720
반응형
'Language > C#' 카테고리의 다른 글
[C#] 백준 14659번 한조서열정리하고옴ㅋㅋ (0) | 2024.03.10 |
---|---|
[C#] 백준 2864번 5와 6의 차이 (0) | 2024.03.09 |
[C#] 백준 10162번 전자레인지 (0) | 2024.03.06 |
[C#] 백준 1408번 24 (0) | 2024.03.06 |
[C#] 백준 13909번 창문 닫기 (0) | 2024.03.04 |