• Home

My Codegate

  • Home

백준 5800 성적 통계 자바 문제풀이

2024/02/05 Posted by Codegate Java No Comments

문제 링크

문제 내용은 입력으로 각 반의 점수를 받은 뒤 내림차순을 한 뒤, 양식에 맞춰서 최대값, 최소값, 가장 차이가 큰 값을 출력해줘야 하는데, 가장 차이가 큰 값은 내림차순으로 정렬한 뒤 인접한 값과 비교하면서 가장 차이가 큰 값을 반환해줘야 한다.

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

public class Main {

  public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    int count = Integer.parseInt(br.readLine());

    for (int i = 0; i < count; i++) {
      Integer[] arr = Arrays.stream(br.readLine().split(" ")).map(Integer::parseInt)
          .toArray(Integer[]::new);
      Integer[] copyedArr = Arrays.copyOfRange(arr, 1, arr.length);
      Arrays.sort(copyedArr, Collections.reverseOrder());

      int max = copyedArr[0];
      int min = copyedArr[copyedArr.length - 1];
      int gap = 0;
      for (int j = 0; j < copyedArr.length - 1; j++) {
        int calc = copyedArr[j] - copyedArr[j + 1];
        if (calc > gap) {
          gap = calc;
        }
      }

      System.out.println("Class " + (i + 1));
      System.out.println("Max " + max + ", Min " + min + ", Largest gap " + gap);
      
    }
  }
}

문제를 풀어보자면 먼저 입력받은 횟수만큼 for 문을 돌리고, 이후 들어오는 값을 맨 처음 값은 배열 길이이니 copyOfRange로 제외해주고, 나머지 배열을 내림차순 정렬해주고 이후 정렬한 배열의 처음 값과 끝 값이 각각 최대 최소값이므로 따로 계산해줄 필요는 없고

이후에는 배열 길이만큼 for 문을 돌려주면서, 현재 수와 다음 수를 비교하면서 최대 점수 차이를 찾아준 뒤양식에 맞춰서 최대값, 최소값, 최대 차이값을 반환해주면 끝이다

No Comments
0

Leave a Reply Cancel Reply

Introduction

My Codegate

Latest Posts

  • Google Search Console API 연동방법
  • 인텔리제이 Gradle Dependency 최신 버전 보는 방법
  • Wallet-Tracker 개발일지
  • Moralis API 자바로 호출방법
  • IntelliJ Commit 후 Push 따로 하는 방법

Categories

  • My Project (4)
  • Java (42)
  • Algorithm (161)
    • Java (152)
    • Algorithm Knowledge (3)
    • Algorithm site usage (6)
  • Vue.js (1)
  • Spring (4)
  • Docker (2)
  • IntelliJ (20)
  • Uncategorized (7)

Recent Comments

  • Codegate on Hello world!
  • A WordPress Commenter on Hello world!

© 2025 — mycodegate.com

Prev Next