-
[백준/BOJ] 1546번 : 평균 (JAVA / 자바)백준 2022. 2. 23. 12:19
안녕하세요~ 코딩하는 코알못 코메인입니다.
https://www.acmicpc.net/problem/1546
- 문제 -
난이도 브론즈 1 문제이다.
자바에서 입력방식은 scanner와 bufferedreader가 있다.
자바를 초반에 접하면 처음에 배우는 입력은 scanner이다. scanner가 bufferedreader보다 편하지만 속도가 느리다.
bufferedreader는 무조건 문자열로 받아오기때문에 정수형이나 실수형 변수에 저장하기 위해서는 입력과 형변환을 해줘야한다.
더 자세한 내용은 아래 글 참고 하면 좋다.
풀이 방법
입력받은 값중 최댓값을 구하고, 문제에 나온 식을 그대로 적용한다.
답이 실수로 나오기때문에 double형으로 연산해준다. 이번에 조건에 반올림 조건이 없기때문에 별다른 반올림 조치는 필요하지 않아보인다.
어렵지 않은 문제이다. 코드로 바로 보자.
-풀이-
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); //입력값을 저장 할 배열 double[] arr = new double[N]; //최댓값을 저장 할 변수 double max = 0; //합을 저장 할 변수 double sum = 0; StringTokenizer st = new StringTokenizer(br.readLine()); for(int i = 0; i < N; i++) { arr[i] = Double.parseDouble(st.nextToken()); //입력값이 max값보다 크면 max에 저장 if(max < arr[i]) max = arr[i]; } //새로운 식을 연산하기위한 반복문 for(int i = 0; i < N; i++) { sum += ((arr[i] / max) * 100); } //총합을 구했으니 점수 개수로 나눠주고 출력 System.out.println(sum / N); } }
-결과-
아직 코딩 공부가 부족한 필자라 설명과 풀이 방법이 많이 미흡할 수 있다. 코딩 고수분들은 보시고 문제점이 있다면 댓글로 말해주시면 감사한 마음으로 참고 수정 하겠습니다.
'백준' 카테고리의 다른 글
[백준/BOJ] 1049번 : 기타줄 (JAVA / 자바) (0) 2022.02.24 [백준/BOJ] 1026번 : 보물 (JAVA / 자바) (1) 2022.02.24 [백준/BOJ] 11320번 : 삼각 무늬 - 1 (JAVA / 자바) (0) 2022.02.23 [백준/BOJ] 11134번 : 쿠키애호가 (JAVA / 자바) (0) 2022.02.22 [백준/BOJ] 11109번 : 괴짜 교수 (JAVA / 자바) (0) 2022.02.22