반응형
Approach
출처: https://www.acmicpc.net/problem/2592
10개의 숫자가 주어질 때, 평균값과 최빈값을 구하는 문제이다.
평균값 = [합계 / 개수]으로 구할 수 있다.
최빈값은 나타난 횟수를 비교해야 하는데,
입력으로 주어지는 10개 숫자가 10의 배수로 1000보다 작은 자연수 이다.
따라서 배열 크기 자체를 100 정도로 설정한다.
ex) arr[i] = 3; → 숫자 (i * 10)가 3번 나타났다.
ex) 숫자 "30" 주어질 때, arr[3]++ 가 된다.
C++
#include <stdio.h>
int sum, val, max, mode;
int arr[100 + 2];
int main()
{
// freopen("input.txt", "r", stdin);
for (int i = 0; i < 10; i++)
{
scanf("%d", &val);
sum += val; // 합계
arr[val / 10]++; // 나타난 횟수
}
for (int i = 0; i < 100; i++)
{
if (max < arr[i])
{
max = arr[i];
mode = i * 10; // 원래 숫자
}
}
printf("%d\n%d\n", sum / 10, mode);
}
Java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] arr = new int[10];
int[] count = new int[10];
int sum = 0;
for (int i = 0; i < arr.length; i++) {
arr[i] = sc.nextInt();
sum = sum + arr[i];
}
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr.length; j++) {
if(arr[j] == arr[i])
count[i]++;
}
}
int idx = 0;
for (int i = 1; i < count.length; i++) {
if(count[idx] < count[i]){
idx = i;
}
}
System.out.println(sum/10);
System.out.println(arr[idx]);
}
}
반응형
'PS 문제 풀이 > Baekjoon' 카테고리의 다른 글
[BOJ] 백준 2739 구구단 (0) | 2022.01.13 |
---|---|
[BOJ] 백준 2605 줄 세우기 (0) | 2022.01.12 |
[BOJ] 백준 2588 곱셈 (0) | 2022.01.11 |
[BOJ] 백준 2566 최댓값 (1) | 2022.01.10 |
[BOJ] 백준 2506 점수계산 (0) | 2022.01.08 |
댓글