본문 바로가기
Algorithm/etc

[파이썬] 백준 5800 : 성적 통계 (실버5)

by 베짱이28호 2025. 1. 20.

[파이썬] 백준 5800 : 성적 통계 (실버5)


풀이

방향성 생각

  • 입력 후, 정렬 + 순회

전체코드

파이썬

for i in range(int(input())):
    n,*arr = list(map(int,input().split()))

    arr.sort()
    print(f"Class {i+1}")
    print(f"Max {arr[-1]}, Min {arr[0]}, Largest gap {max(arr[j+1]-arr[j] for j in range(n-1))}")
  • 앞에 특정 원소 몇개를 빼고, *을 통해서 바로 불러올 수 있다.

 

자바

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int T = Integer.parseInt(br.readLine());

        for (int i=1; i<=T; i++) {
            StringTokenizer st = new StringTokenizer(br.readLine());
            int N = Integer.parseInt(st.nextToken());
            int[] arr = new int[N];

            for (int j=0; j<N; j++) {
                arr[j] = Integer.parseInt(st.nextToken());
            }

            Arrays.sort(arr);

            int max_gap = 0;
            for (int j=0; j<N-1;j++) {
                max_gap = Math.max(max_gap, arr[j+1]-arr[j]);
            }

            System.out.println("Class " + i);
            System.out.println("Max " + arr[N-1] + ", Min " + arr[0] + ", Largest gap " + max_gap);
        }
    }
}
  • 버퍼 리더로 먼저 불러온다.
  • 각 테케에서 입력이 주어지면 스트링 토크나이저로 맨 앞에꺼 먼저 받고, 나머지는 고정크기 할당해서 풀기.

코멘트

  • 사무치게 그립구나 파이썬아...

댓글