문제 링크입니다: https://www.acmicpc.net/problem/11974
같은 학교 학우이신 Green55님 덕분에 풀 수 있었던 문제였습니다.
이 문제는 푸는 방법을 알아야지만 쉽게 접근할 수 있었던 문제였던 것 같습니다.
i < j일 때 pSum[i - 1] % MOD == pSum[j] % MOD라면 i ~ j의 합은 7의 배수인 것을 이용하면 되는 문제였습니다.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int result;
int main(void)
{
ios_base::sync_with_stdio(0);
cin.tie(0);
int N;
cin >> N;
vector<int> v[7]; //MOD 7 -> 0 ~ 6
int idx = 0;
for (int i = 1; i <= N; i++)
{
int num;
cin >> num;
idx += num;
idx %= 7;
v[idx].push_back(i); //합의 MOD를 인덱스로
}
for (int i = 0; i < 7; i++)
if (v[i].size())
result = max(result, v[i].back() - v[i].front());
cout << result << "\n";
return 0;
}
개발환경:Visual Studio 2017
지적, 조언, 질문 환영입니다! 댓글 남겨주세요~
'알고리즘 > BOJ' 카테고리의 다른 글
백준 1713번 후보 추천하기 (0) | 2018.09.24 |
---|---|
백준 12934번 턴 게임 (0) | 2018.09.23 |
백준 11973번 Angry Cows(Silver) (0) | 2018.09.23 |
백준 11977번 Angry Cows(Bronze) (0) | 2018.09.23 |
백준 11976번 Promotion Counting (0) | 2018.09.23 |