Notice
Recent Posts
Recent Comments
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

충분히 쌓여가는

백준[Java] 10811번 바구니 뒤집기 [배열 Double 사용 문제] 본문

IT/Java[백준]

백준[Java] 10811번 바구니 뒤집기 [배열 Double 사용 문제]

빌드이너프 2023. 3. 4. 11:22

https://www.acmicpc.net/problem/1546

 

1546번: 평균

첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보

www.acmicpc.net

문제풀이 1

import java.util.Arrays;
import java.util.Scanner;
public class _1546_1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        double[] arr = new double[sc.nextInt()];

        for (int i = 0; i < arr.length; i++) {
            arr[i] = sc.nextInt();
        }
        Arrays.sort(arr);

        double sum = 0;

        for (int i = 0; i < arr.length; i++) {
            sum += arr[i]/arr[arr.length-1] * 100;
        }
        System.out.println(sum/ arr.length);
    }
}

 

배열 사용


문제풀이 2

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;

public class _1546_2 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        double[] arr = new double[Integer.parseInt(br.readLine())];

        StringTokenizer st = new StringTokenizer(br.readLine(), " ");
        for (int i = 0; i < arr.length; i++) {
            arr[i] = Double.parseDouble(st.nextToken());
        }
        Arrays.sort(arr);

        double sum = 0;

        for (int i = 0; i < arr.length; i++) {
            sum += arr[i]/arr[arr.length-1] * 100;
        }
        System.out.println(sum/ arr.length);
    }
}

배열 사용


문제풀이 3

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class _1546_3 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int N = Integer.parseInt(br.readLine());

        StringTokenizer st = new StringTokenizer(br.readLine(), " ");

        int max = -1; // -1: 입력받을 값이 0보다 큼
        double sum = 0.0;

        for (int i = 0; i < N; i++) {
            int value = Integer.parseInt(st.nextToken());

            if(value > max) {
                max = value;
            }
            sum += value;
        }

        System.out.println(((sum / max) * 100.0) / N);
    }
}

배열 사용하지 않음