해결방법
우선, 2N번 돌리면 N일동안의 메뉴를 모두 정할수 있다고 하는 것으로 반복을 최소 2 * N번 해야 한다는 것을 알 수 있다.
문제의 핵심은 Menu[input - 1] 이 부분이다. 스티커를 붙이면 저 부분에 +1을 해주고, 아니라면 -1을 해주면 된다.
정답 코드
#include <iostream>
using namespace std;
int main()
{
int N, input, num = 0, max = 0;
int Menu[100000] = { 0 };
cin >> N;
for (int i = 0; i < 2 * N; i++)
{
cin >> input;
if (Menu[input - 1] == 0)
num++;
else if (Menu[input - 1] == 1)
num--;
Menu[input - 1]++;
if (max < num)
max = num;
}
cout << max;
return 0;
}
'코딩테스트' 카테고리의 다른 글
BOJ - 최대공약수와 최소공배수 2609 (0) | 2025.01.05 |
---|---|
BOJ - 좌표 정렬하기 2 11651 (0) | 2025.01.05 |
BOJ - 수 찾기 1920 (0) | 2025.01.04 |
BOJ - 스택 10828 (0) | 2025.01.04 |
BOJ - 괄호 9012 (0) | 2025.01.04 |