728x90
반응형

안녕하세요!

 

제가 코딩테스트 및 알고리즘 대회를 위한 언어로 Java를 선택해서 오늘부터 달리려고 합니다~ㅎㅎ

 

그래서 자바로 제출하려고 하니까 Class 이름부터 Scanner 대신 BufferedReader를 쓰라고 해서,,!

 

제가 보려고 정리한 내용입니다!

 

정말 훌륭하신 분께서 이미 글을 올려놓으셔서! 링크 남겨요~ 

https://m.blog.naver.com/chltmddus23/221696297647

 

백준 문제 자바로 풀 때 유의사항

2352문제를 풀 때, 처음으로 자바로 답을 제출해보았다. 이때, 제출 형식에 유의할 점이 있는데 몰랐어서 ...

blog.naver.com

 

1. Class 이름은 반드시 Main 사용! - 안쓰면 컴파일 에러!

 

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

public class Main {

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

 

2. 입력은 scanner << BufferedReader 사용하는게 더 빠르다!

 

버퍼 사이즈가 클수록 한번에 읽어들여놓고 다시 읽으러 안가고 버퍼에서만 왔다갔다하면 되니까 그런 것 같다.

 

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

//1546번 평균 문제

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
        StringTokenizer st;
        
        // br.readLine()은 한 라인을 String으로 입력 받음
        // Integer.parseInt(<String>)은 <String>값을 int로 반환
        int N = Integer.parseInt(br.readLine());

        int[] arr = new int[N];

        int max = 0;

        // StringTokenizer는 String을 " " (공백)으로 구분하여 자름
        st = new StringTokenizer(br.readLine());
        
        // default 구분자가 공백인거고 다른 걸 넣을 수도 있음.
        // 예) st = new StringTokenizer("자를 문자열", "구분자");
        
        
        for (int i = 0; i < N; i++) {
            arr[i] = Integer.parseInt(st.nextToken());
            max = Math.max(max, arr[i]);
        }

        double x = 0;

        for (int i = 0; i < N; i++) {
            x += arr[i] / (double)max * 100;
        }

        System.out.println(x / N);
    }
}
728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기