-
백준 2592번 : 대표값 (C 언어)c c++ 언어 공부 2023. 6. 30. 14:26
https://www.acmicpc.net/problem/2592
2592번: 대표값
어떤 수들이 있을 때, 그 수들을 대표하는 값으로 가장 흔하게 쓰이는 것은 평균이다. 평균은 주어진 모든 수의 합을 수의 개수로 나눈 것이다. 예를 들어 10, 40, 30, 60, 30, 20, 60, 30, 40, 50의 평균은
www.acmicpc.net
Code:
12345678910111213141516171819202122232425262728293031323334#include <stdio.h>int main(){int check[1001] = { 0, };int avr = 0;int count = 10;int value = 0;int sum = 0;int max = 0;int result = 0;while (count--){scanf("%d", &value);sum += value;check[value]++;}for (int i = 1; i <= 1000; i++){if (check[i] <= max){continue;}else{max = check[i];result = i;}}printf("%d\n", sum / 10);printf("%d", result);}cs 문제 설명: 주어진 문제는 열 개의 자연수를 입력받아 평균과 최빈값을 구하는 프로그램을 작성하는 것입니다. 자연수는 1,000보다 작은 10의 배수로 주어집니다.
코드 설명:
- check라는 크기가 1001인 배열을 선언하고 모두 0으로 초기화합니다. 이 배열은 주어진 자연수의 빈도를 저장하는 용도로 사용됩니다.
- avr, count, value, sum, max, result라는 변수들을 선언합니다.
- avr: 평균값을 저장할 변수
- count: 입력받을 자연수의 개수
- value: 입력받은 자연수의 값을 임시로 저장할 변수
- sum: 입력받은 자연수들의 합을 저장할 변수
- max: 가장 많이 나타나는 자연수의 빈도를 저장할 변수
- result: 최빈값을 저장할 변수
- count가 0이 될 때까지 반복문을 실행합니다. 반복문 내에서는 자연수를 입력받고, 입력받은 수의 빈도를 증가시킵니다. 또한 입력받은 수들의 합을 sum에 누적합니다.
- 입력받은 자연수들에 대한 빈도를 계산한 후, check 배열을 순회하면서 가장 많이 나타나는 자연수를 찾습니다. 이를 위해 max 변수를 사용하여 현재까지 찾은 최빈값의 빈도를 저장합니다. 만약 새로운 수의 빈도가 max보다 작거나 같으면 다음 인덱스로 넘어갑니다. 그렇지 않은 경우, max와 result를 갱신합니다.
- 평균값과 최빈값을 출력합니다.
'c c++ 언어 공부' 카테고리의 다른 글
백준 2953번 : 나는 요리사다 (C 언어) (0) 2023.07.01 백준 1822번 : 차집합 (C 언어) (0) 2023.06.30 백준 2669번 : 직사각형 네개의 합집합의 면적 구하기 (C 언어) (0) 2023.06.28 백준 4344번 : 평균은 넘겠지 (C 언어) (0) 2023.06.27 백준 11441번 : 합 구하기 (C 언어) (0) 2023.06.26