BOJ 문제풀이

백준 30804 c++ 풀이 (과일 탕후루)

koreasunoo 2024. 8. 11. 17:21
SMALL

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

 

핵심전략:

탕후루 한 알 한 알를 고려하여 푼다. (자료구조 큐를 사용)

 

정답코드:

#include <bits/stdc++.h>
#define nl '\n'
using namespace std;
typedef long long ll;

int i, j;
int type[10];

int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
	queue<int> q;
	int n;
	cin >> n;
	int cnt = 0;
	int result = 0;
	int len = 0;

	while(n--){
		int num;
		cin >> num;
		q.push(num);
		len ++;

		if(type[num] == 0){
			cnt ++;
		}
		type[num] ++;

		while (cnt > 2){
			int fruit = q.front();
			type[fruit] --;
			q.pop();
			len --;
			if (type[fruit] == 0){
				cnt --;
			}
		}
		result = max(result, len);
	}
	cout << result << nl;
    return 0;
}

 

LIST

'BOJ 문제풀이' 카테고리의 다른 글

백준 28702 c++ 문제 풀이 (FizzBuzz)  (0) 2024.08.10
백준 30802 c++ 문제 풀이 (웰컴 키트)  (0) 2024.08.10
백준 23175번 c++ 풀이  (0) 2021.10.11
백준 1644번 c++ 풀이  (0) 2021.10.10
백준 2003번 c++ 풀이  (0) 2021.10.10