[백준] 1546: 평균 - JAVA(자바)

2026. 2. 23. 01:09·CS/Do it 알고리즘 코딩테스트 (자바편)

🧩 문제

Do it 알고리즘 코딩 테스트 자바편(구판) 002

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

 

 

💻 풀이

이 문제도 우선 책 참고 안하고 스스로 풀어보았다.

import java.util.Scanner;

public class P1546_평균 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] scores = new int[n];
        int max = 0;
        for (int i = 0; i < n; i++) {
            scores[i] = sc.nextInt();
            if (max < scores[i])
                max = scores[i];
        }
        double[] newScores = new double[n];
        double sum = 0;
        for (int i = 0; i < n; i++) {
            newScores[i] = (double) scores[i] / max * 100;
            sum += newScores[i];
        }
        System.out.println(sum / n);
    }
}

점수를 입력받고 최대값을 기준으로 점수를 각각 변환하여 새 점수 배열에 넣어주고 평균을 구했다.

 

책의 해설을 보니 일일이 전체 점수를 다시 계산하는 과정 없이 변환 점수의 평균을 구하는 식을 만들어서 간단하게 풀었다.

변환 점수의 평균을 구하는 식(점수가 A, B, C인 경우):
(A / M * 100 + B / M * 100 + C / M * 100) / 3
= (A + B + C) * 100  / M / 3

즉 `점수의 합 * 100 / max / n`이라는 공식을 통해 쉽게 평균을 구할 수 있다.

 

따라서 책의 코드를 기반으로 좀 더 간단하게 풀어보면 다음과 같다.

import java.util.Scanner;

public class P1546_평균 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] scores = new int[n];
        int max = 0;
        int sum = 0;
        for (int i = 0; i < n; i++){
            scores[i] = sc.nextInt();
            if (scores[i] > max) max = scores[i];
            sum += scores[i];
        }
        System.out.println(sum * 100.0 / max / n);
    }
}

 

📊 시간 복잡도 및 결과

⏱️ 시간 복잡도

입력받은 점수의 개수(n)만큼 for문이 한 번 실행되기 때문에 시간 복잡도는 O(n)이다.

sc.nextInt(), if ()  비교, sum 계산 등은 모두 상수 시간(O(1))에 처리되기 때문에 전체 시간 복잡도는 n * O(1) = O(n)이다.

 

✅ 제출 결과

'CS > Do it 알고리즘 코딩테스트 (자바편)' 카테고리의 다른 글

[백준] 2018: 수들의 합 5 - JAVA(자바)  (0) 2026.03.04
[백준] 11720: 숫자의 합 - JAVA(자바)  (0) 2026.02.23
Do it 알고리즘 코딩 테스트 자바편(2022년 구판) 시작!  (0) 2026.02.22
'CS/Do it 알고리즘 코딩테스트 (자바편)' 카테고리의 다른 글
  • [백준] 2018: 수들의 합 5 - JAVA(자바)
  • [백준] 11720: 숫자의 합 - JAVA(자바)
  • Do it 알고리즘 코딩 테스트 자바편(2022년 구판) 시작!
hee-on
hee-on
작은 기록을 모아 꾸준히 성장해 나가는 개발 기록 공간입니다💻
  • hee-on
    희온의 dev log
    hee-on
  • 전체
    오늘
    어제
    • 전체 글 (52) N
      • About (2)
      • Backend (33) N
        • Java (15)
        • Spring (6)
        • DB (8) N
        • Architecture & Design (4) N
      • Frontend (6)
      • CS (6)
        • Algorithm (2)
        • Do it 알고리즘 코딩테스트 (자바편) (4)
        • Network (0)
        • Operating System (0)
      • DevOps (1)
        • Git (1)
        • CI-CD (0)
        • Docker (0)
        • AWS (0)
      • AI (1)
      • 일상 || 잡담 (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    블로그
    JavaScript
    백준
    MVC
    SQL
    소개
    개발자
    ClaudeAPI
    취준
    백엔드
    JSP
    알고리즘
    SpringBoot
    Java
    til
    Spring
    Servlet
    db
    react
    코테
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
hee-on
[백준] 1546: 평균 - JAVA(자바)
상단으로

티스토리툴바