본문 바로가기

알고리즘

대표값

오답노트

최빈값 세는 부분 -> 잘못 설계함.

최빈값 세는 부분 설계 너무 대충함.시간안에 끝내려고...이러면 안된다.

import java.util.Scanner;
public class Main{
    // 평균, 최빈값 구하는 문제
    // 최빈값 둘 이상인 경우 앞에거 출력
    // 열개 주어짐, 배열 열개짜리
    // a[20]
    // v[1010]
    // sum
    // for(i 1~=10) a 입력
    //    sum+=a[i]
    //    v[i]+=1;
    (1) ====>  v[a[i]]+=1 로 설계했어야
    // avg = sum/10;
    // cnt=0;idx=1;
    // for(i 1~=1000)
    //  v[i]>cnt{idx=i}
    //idx 최빈값
    public static int[] a = new int[20];
    public static int[] v = new int[1010];
    public static void main(String[] args){
      Scanner scan = new Scanner(System.in);
      int sum=0;
      for(int i=1;i<=10;i++)
      {
        a[i]=scan.nextInt();
        sum+=a[i];
        v[a[i]]+=1;
      }
      int avg = sum/10;
      
     int maxCnt=0;int max=0;
      for(int i=1;i<=1000;i++)
      {
        if(maxCnt<v[i])//최빈값 세는 것
        {
          max = i;//최빈값 갱신
          maxCnt = v[i];//최빈값의 개수 계속 갱신, 같은거는 무시(위에서)
        }
      }
      System.out.println(avg);
      System.out.println(max);
      
      scan.close();
    }
}



'알고리즘' 카테고리의 다른 글

재귀 유용한 틀(1)  (0) 2019.09.16
수영장  (0) 2019.09.04
미로 탐색  (0) 2019.08.09
유기농 배추  (0) 2019.08.09
중복없는구간  (0) 2019.08.07