https://www.acmicpc.net/problem/1337
1337번: 올바른 배열
첫째 줄에 배열의 크기 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 배열의 원소가 한 줄에 하나씩 주어진다. 원소는 1,000,000,000보다 작거나 같은 음이 아닌 정수이
www.acmicpc.net
어떤 배열 속에 있는 원소 중 5개가 연속적일 때 올바른 배열이라 한다. 배열이 주어졌을 때 올바른 배열이 되기 위해 추가되어야 할 원소의 최소 개수를 구하는 문제이다.
이중 반복문을 사용해 풀어주었다.
1. 배열을 정렬
2. 배열의 비교 원소가 해당 원소의 올바른 배열에 포함되는지 확인 -> 차이값이 5미만이면 된다.
1,2를 모든 원소에 반복하면 배열에서 가장 긴 연속되는 원소의 길이를 구할 수 있다.
#include <iostream>
#include <algorithm>
using namespace std;
int a[51];
int main(void) {
int N;
cin >> N;
for(int i=0; i<N; i++) {
cin >> a[i];
}
sort(a, a+N);
int max=0;
for(int i=0; i<N; i++) {
int l=1;
for(int j=i+1; j<N; j++) {
if(a[j]-a[i]<5 && a[j]-a[i]>0) l++;
}
if(l>max) max=l;
}
cout << 5-max;
}
'알고리즘 풀이' 카테고리의 다른 글
[백준][C++] 11724번: 연결 요소의 개수 (0) | 2024.04.03 |
---|---|
[백준][C++] 4256번: 트리 (0) | 2024.03.30 |
[백준][C++] 1004번: 어린 왕자 (0) | 2024.03.29 |
[백준][C++] 10845번: 큐 (0) | 2024.03.29 |
[백준][C++] 11725번: 트리의 부모 찾기 (0) | 2024.03.29 |