일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 28 | 29 | 30 |
Tags
- silver
- coding
- 나는솔로
- 2020
- Greedy
- Netflix
- 백준
- 완전탐색
- 추천
- 코딩 테스트
- 수능
- 카카오
- review
- 넷플릭스
- 해설
- 리뷰
- Movie
- benefits
- Algorithm
- BFS
- usaco
- 영어
- parametric search
- BOJ
- array
- 영화
- Recursive
- health
- 알고리즘
- kakao
Archives
- Today
- Total
Young
Subsequences Summing to Sevens 본문
728x90
반응형
https://www.acmicpc.net/problem/11974
이 문제는 기본 pre-sum을 구한다는 건 쉽게 알 수 있으나, 그것을 조금만 응용하면 되는 문제이다.
하지만, 난 헤매고 있었지 ㅎㅎ..
아이디어는 어렵지 않다. 아래 설명이 있으니 생략. 인상적인 문제였다.
어디에 더 응용할 수 있을지 깊이 생각해 봐야겠다.
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
#include<iostream>
#include<algorithm>
#define endl '\n'
#define FastIO ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
int n;
int min_idx[7], max_idx[7];
int main() {
FastIO;
// 연속한 수의 합이 배수인지 확인하기 위해서는 -> pre-sum을 구하는건 확실함.
// 임의의 구간 i ~ j 합을 구하기 위해 sum[j] - sum[i - 1]을 하는데
// 이 구간합이 7의 배수인지 한 번에 확인할 수 있다면 효율적일 것이다!
// sum을 구할 때마다 (처음부터 현재까지의 구간 합)이 특징을 가지고 있음.
// 나머지 별로 구간의 위치를 기록해 놓는다면, 각 구간의 합이 7의 배수일지 아닐지 한 번에 알 수 있을 것이다.
// 빼기로 7의 배수이려면, 나머지가 같은 숫자를 빼면 7의 배수가 된다는 건 쉽게 알 수 있음.
cin >> n;
int total = 0;
for (int i = 1; i <= n; i++) {
int a;
cin >> a;
total = (total + a) % 7;
if (!min_idx[total]) min_idx[total] = i; // 최초 발견하면 저장하고 그만둔다.
max_idx[total] = i; // 발견할 때마다 업데이트 해준다. 그래야 최대로 오른쪽까지 나머지 total인 인덱스를 저장할 수 있다.
}
int ans = 0;
for (int i = 0; i < 7; i++) {
if (!min_idx[i] || !max_idx[i]) continue;
ans = max(ans, max_idx[i] - min_idx[i]);
}
cout << ans;
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter
|
728x90
반응형
'코딩 테스트 대비 추천 문제 > USACO' 카테고리의 다른 글
Why Did the Cow Cross the Road III (Silver) (0) | 2019.04.05 |
---|---|
Moocast (0) | 2019.04.04 |
Why Did the Cow Cross the Road (Silver) (0) | 2019.04.04 |
Build Gates (0) | 2019.04.02 |
Angry Cows (0) | 2019.04.02 |