728x90
이전글 : 2023.07.27 - [알고리즘(Java)/백준] - [Java]백준11720_숫자의 합 구하기
백준1546_평균구하기
step 1. 문제 분석하기
- 예제입력에서 3 -> 시험을 본 과목의 개수 / 40 80 60 -> 각 과목의 시험 성적
- 평균구하기 (M=최대수) (입력값a+b+c)*100 / M / 3 ->평균
step 2. 손으로 써가면서 풀어보기
step 3. 슈도코드 작성하기
1) 변수 N에 과목의 수 입력받기
2) 길이가 N인 1차원 배열 A[] 선언하기
3) for문으로 A[] 길이만큼 반복하기 {
A[i]에 각 점수 저장하기 }
4) for(A[] 길이 만큼 반복하기) {
최고점은 변수 max에 , 총점은 변수 sum에 저장하기
- > 공식 = sum*100 / max / N
5) 출력하기
final. 코드로 구현하기
import java.util.Scanner;
//백준 온라인
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int A[] = new int[N];
for (int i = 0; i <N ; i++) {
A[i] = sc.nextInt(); }
long sum = 0;
long max = 0;
for (int i = 0; i <N ; i++) {
if(A[i]>max) {
max = A[i];
sum += A[i];
}
}
System.out.println(sum*100.0/max/N);
}
}
//<<다른사람 코드>>
import java.util.Scanner;
//백준 온라인
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
long sum =0;
long max=0;
for (int i = 0; i <N ; i++) {
int temp = sc.nextInt();
if(temp>max) {
max = temp;
sum += temp;
}
}
System.out.println(sum*100.0/max/N);
}
}
결과적으로 답은 똑같으며, 그림을 그려서 풀면서 비교적 쉽게 풀리는 문제였습니다 감사합니다.
모든 알고리즘 풀이 과정은 책 Do it! 알고리즘 코딩테스트 with Java를 기반으로 작성하였습니다.
728x90