백준 2587 대표값2

Ga0·2023년 4월 19일
0

baekjoon

목록 보기
33/125

문제 해석

  • 첫번째부터 다섯번째 줄까지 숫자(자연수)를 입력받는다.(총 5개의 자연수)
  • 입력받았다면, 해당 자연수들의 총 평균과 중간값을 찾아서 출력하면된다. (첫째 줄에 5개의 자연수의 평균, 두번째에 중간값 출력)

코드



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

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        int [] arrs =  new int[5]; //5개의 정수형을 입력받는 배열
        int sum = 0; // 총 합을 저장하는 변수

        for(int i =  0; i < 5; i++){
            arrs[i] = Integer.parseInt(br.readLine()); //배열에 해당 입력된 값을 넣고
            sum += arrs[i]; // sum에 바로 누적더하기(나중에 누적더하기 하려면 반복문 한번 더 돌려야하니까 같이 함)
        }
        br.close();

        Arrays.sort(arrs); // 작은수 => 큰수로 정렬

        // 누적 더하기 한 것에 5로 나누면 평균이고, 배열의 2번째 요소가 중간값임으로 출력
        bw.write(sum/5 +"\n" + arrs[2]);

        bw.flush();
        bw.close();


    }
}
  • 이 문제는 어려운 문제는 아니여서 주석으로 간단하게 설명을 작성해두었다.

결과

느낀점

  • 문제를 풀고 다른 분이 작성한 코드 중에 시간이 자신보다 빠른 것을 보는데 C++을 사용할 경우 0ms가 나온 것을 보고 왜 C++은 왜이리 빠를까하고 찾았는데 C++은 직접 컴파일 방식이고 기계어 명령어에 1대1 대응되니까 속도가 빠르다 라고 한다. 즉 C++은 속도가 빠르고 기계어게 가장 가까운 언어이기 때문에 빠르고, JAVA의 경우는 가상머신이 중간에 끼게 되면서 속도 차이가 나는 것을 알아갈 수 있었다.

0개의 댓글