-
Educational Codeforces Round 35 (Rated for Div. 2) - A.Nearest Minimums코드포스(CodeForce) 2018. 8. 17. 18:22반응형
1. 문제
2. 알고리즘
키워드 - 구현
* 문제 분석
입력 받은 숫자 데이터에서 가장 작은 최소값의 사이 거리를 구하는 문제
문제 제약 사항
It is guaranteed that in the array a minimum occurs at least two times.
가장 작은 수는 두개가 있다고 보장 함.
* 문제 풀이
입력 받은 데이터가 [4 5 4 1 2 3 4 3 1 5 1] 라면
첫 번째로 입력 받은 데이터 중 가장 작은 원소를 찾는다.
4 5 4 1 2 3 4 3 1 5 1 -> 가장 작은 수는 [1]
두 번째로 가작 작은 수의 사이 거리를 구한다.
4 5 4 1 2 3 4 3 1 5 1 -> 사이 거리는 5
4 5 4 1 2 3 4 3 1 5 1 -> 사이 거리는 2
가장 작은 사이 거리를 구한다.
3. 코드
1234567891011121314151617181920212223242526272829303132333435363738394041#include<iostream>#include<algorithm>#include<string.h>#include<memory.h>#include<vector>using namespace std;int main(){int n;cin >> n;vector<int> arr(n);for (int i = 0; i < n; i++)cin >> arr[i];int minValue = 1987654321;int minIndex = 0;for (int i = 0; i < n; i++) {if (minValue > arr[i]) {minValue = arr[i];minIndex = i;}}int sol = 1987654321;int count = 0;for (int i = minIndex+1; i < n; i++) {count++;if (minValue == arr[i]) {sol = min(sol, count);count = 0;}}cout << sol << endl;return 0;}cs 반응형'코드포스(CodeForce)' 카테고리의 다른 글