문제풀이/백준
백준 1546번 자바
던킨
2022. 3. 9. 21:00
728x90
반응형
1차원 배열에 관련된 문제입니다.
잘 생각하시면 어렵지 않은 문제입니다.
제일 기본적인 방법으로 풀어보도록 하겠습니다.
먼저 배열의 모든 원소를 입력받아 저장하고 arrays.sort() 로 정렬합니다(오름차순 순으로 정렬이 됩니다.)
그렇다면 배열의 마지막길이는 배열에 가장 큰 값이라는것을 알수있습니다.
또한 주의해야할 점은 연산할때 반드시 초소한자료형1개이상은 double형으로 써야합니다. 그러면 자동형변환이 되면서 자료형이 큰 쪽으로 (int에서 double)변환이 되기 때문입니다.
여기서는 sum을 double형으로 해주었습니다.
Scanner sc = new SCanner(System.in);
int a = sc.nextInt();
double num[] = new double[a];//배열의 길이를 정해줄수 있습니다.
for( int i = 0; i<num.length; i++){
num[i]=sc.nextInt(); //num[i]에 어떤 값을이 들어갈지 적어줄수 있는 구문입니다.
}
double sum =0;
Arrays.sort(num); //arrays.sort는 숫자의 크기대로 정렬을 해줍니다.
for(int i =0; i<num.length; i++){
sum+= ((num[i]/num[num.length-1]) *100); //sum 에 축적될 값을 구해주는 구문입니다.
}
System.out.printLn(sum/num.length);
}
}
728x90
반응형