728x90
728x90
최대(Max), 최소(Min), 최빈(Mode)
최대(Max)와 최소(Min)
- 주어진 배열에서 최댓값과 최솟값을 찾는 알고리즘은 다음과 같다.
- 만약 배열을 검색해서 max/min 보다 큰/작은 값이 없다면 처음에 가정으로 세운 max/min 값이 최댓값/최솟값이 된다.
최댓값 구하기
① 배열의 첫 번째 값을 최댓값(max)이라 가정한다.
② 배열을 검색해서 max 보다 큰 값(x)이 있으면 max 값을 x로 변경해준다. (max = x)
③ 결국 마지막엔 최댓값이 max 변수에 남게 된다.
최솟값 구하기
① 배열의 첫 번째 값을 최솟값(min)이라 가정한다.
② 배열을 검색해서 min보다 작은 값(y)이 있으면 min 값을 y로 변경해준다. (min = y)
③ 결국 마지막엔 최솟값이 min 변수에 남게 된다.
구현
#include <iostream>
using namespace std;
int main() {
int a[5] = { 33, 67, 23, 87, 95 };
int max, min;
max = min = a[0];
for (int i = 0; i < 5; i++) {
if (max < a[i]) {
max = a[i];
}
if (min > a[i]) {
min = a[i];
}
}
cout << "최댓값 : " << max << endl;
cout << "최솟값 : " << min << endl;
return 0;
}
더보기
최댓값 : 95
최솟값 : 23
최빈(Mode)
- 주어진 배열에서 빈도수가 가장 많은 최빈값을 찾는 알고리즘은 다음과 같다.
① 주어진 배열(a)의 요소값을 바탕으로 새로운 배열(b)을 생성한다. 새로운 배열의 내부는 0으로 채운다.
X 1 2 2 2 10 a[0] a[1] a[2] a[3] a[4] a[5]
X 0 0 0 0 0 0 0 0 0 0 b[0] b[1] b[2] b[3] b[4] b[5] b[6] b[7] b[8] b[9] b[10]
② 다음의 알고리즘을 적용하여 배열 b의 내용을 채운다.
for (int i = 1; i <= 5; i++) { b[a[i]]++; }
X 1 3 0 0 0 0 0 0 0 1 b[0] b[1] b[2] b[3] b[4] b[5] b[6] b[7] b[8] b[9] b[10]
③ 최빈값을 찾는 문제를 최댓값을 찾는 문제로 변경하였다.
→ 배열 b에서 최댓값을 찾으면 3이고, 이것은 최빈값의 개수를 의미하며, 이 최댓값의 인덱스(Index) 값은 2로, 이는 최빈값을 의미한다.
구현
#include <iostream>
using namespace std;
int main() {
int a[6] = { 0, 1, 2, 2, 2, 10 }, b[11] = { 0 };
int max = 0, mode;
for (int i = 1; i <= 5; i++) {
b[a[i]]++;
}
for (int i = 1; i <= 10; i++) {
if (max < b[i]) {
max = b[i]; // 최빈값의 개수
mode = i; // 최빈값
}
}
cout << "최빈값 : " << mode << endl;
cout << "최빈값의 개수 : " << max << endl;
return 0;
}
더보기
최빈값 : 2
최빈값의 개수 : 3
728x90
728x90
'Computer Science > 알고리즘' 카테고리의 다른 글
[Algorithm] 피보나치 수열(Fibonacci Sequence) (1) | 2022.10.06 |
---|---|
[Algorithm] 삽입 정렬(Insertion Sort) (1) | 2022.10.06 |
[Algorithm] 버블 정렬(Bubble Sort) (0) | 2022.10.06 |
[Algorithm] 선택 정렬(Selection Sort) (0) | 2022.10.06 |
[Algorithm] 콜라츠 추측(Collatz Conjecture) ; 우박수(Hailstone Sequence), 3N + 1 Problem (0) | 2022.09.01 |
[Algorithm] 소수(Prime Number) ; 쌍둥이 소수(Twin Primes), 메르센 소수(Mersenne Primes), 골드바흐의 추측(Goldbach's Conjecture) (0) | 2022.09.01 |
[Algorithm] 팰린드롬(Palindrome) (0) | 2022.09.01 |
[Algorithm] 완전제곱수(Perfect Square Number, 제곱수, 정사각수) (0) | 2022.08.31 |