안녕하세요! 이번 강좌에서는 자바로 평균을 구하는 알고리즘 문제를 다뤄 보겠습니다. 평균을 구하는 것은 프로그래밍 언어를 막론하고 기본적인 연산 중 하나이며, 코딩 테스트에서도 자주 출제되는 주제입니다. 평균 구하기 문제는 단순히 입력값을 어떻게 처리하느냐에 따라서 알고리즘의 복잡성이 달라질 수 있습니다. 따라서 기초부터 차근차근 배워 나가겠습니다.
문제: 평균 구하기
주어진 정수 배열에 대한 평균을 구하는 프로그램을 작성하세요. 단, 배열의 길이는 1 이상 100 이하의 범위여야 하며, 배열의 원소는 모두 정수로 이루어져 있습니다. 또한, 평균은 소수점 둘째 자리에서 반올림하여 출력해야 합니다.
입력:
- 정수 N (1 ≤ N ≤ 100): 배열의 길이
- 정수 배열 A[0..N-1] (각 요소는 -1000 ≤ A[i] ≤ 1000): 배열의 각 원소
출력:
- 평균을 소수점 둘째 자리까지 반올림하여 출력하세요.
문제 풀이 과정
문제를 해결하기 위해서 다음과 같은 단계로 진행해 보겠습니다:
- 입력값을 받고 배열을 생성합니다.
- 배열의 모든 원소를 더합니다.
- 배열의 원소 개수로 총합을 나누어 평균을 계산합니다.
- 평균을 소수점 둘째 자리까지 반올림하여 출력합니다.
1단계: 입력값 받기
문제를 풀기 위한 첫 단계는 사용자로부터 입력을 받는 것입니다. 자바에서는 Scanner
클래스를 사용하여 입력을 받을 수 있습니다. 사용자가 입력한 배열의 길이와 배열의 원소를 차례대로 읽어와야 합니다.
import java.util.Scanner;
public class AverageCalculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("배열의 길이를 입력하세요: ");
int N = scanner.nextInt();
int[] A = new int[N];
System.out.println("배열의 원소를 입력하세요:");
for (int i = 0; i < N; i++) {
A[i] = scanner.nextInt();
}
// 다음 단계로 넘어갑니다.
}
}
2단계: 배열의 모든 원소 더하기
두 번째 단계에서는 배열의 모든 원소를 더합니다. 이를 위해 총합을 저장할 변수를 하나 선언하여 0으로 초기화한 후, 반복문을 통해 배열의 원소를 하나씩 더합니다.
int sum = 0;
for (int i = 0; i < N; i++) {
sum += A[i];
}
// 다음 단계로 넘어갑니다.
3단계: 평균 계산하기
이제 총합을 구했으니, 평균을 계산할 차례입니다. 평균은 총합을 배열의 길이로 나누어 계산할 수 있습니다. 평균 값을 저장할 변수를 선언해 주세요.
double average = (double) sum / N; // 정수 나누기로 인해 cast 연산 필요
4단계: 평균 반올림하여 출력하기
마지막 단계에서는 평균을 소수점 둘째 자리까지 반올림하여 출력해야 합니다. 자바에서는 Math.round
메서드를 사용하여 반올림할 수 있습니다. 반올림 후에 적절한 형식으로 출력하면 됩니다.
average = Math.round(average * 100.0) / 100.0; // 소수점 둘째 자리까지 반올림
System.out.printf("평균: %.2f\n", average); // 소수점 둘째 자리까지 출력
}
}
전체 코드
위 단계를 모두 합치면, 최종적으로 작성된 프로그램은 다음과 같습니다:
import java.util.Scanner;
public class AverageCalculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 1단계: 입력값 받기
System.out.print("배열의 길이를 입력하세요: ");
int N = scanner.nextInt();
int[] A = new int[N];
System.out.println("배열의 원소를 입력하세요:");
for (int i = 0; i < N; i++) {
A[i] = scanner.nextInt();
}
// 2단계: 배열의 모든 원소 더하기
int sum = 0;
for (int i = 0; i < N; i++) {
sum += A[i];
}
// 3단계: 평균 계산하기
double average = (double) sum / N; // 정수 나누기로 인해 cast 연산 필요
// 4단계: 평균 반올림하여 출력하기
average = Math.round(average * 100.0) / 100.0; // 소수점 둘째 자리까지 반올림
System.out.printf("평균: %.2f\n", average); // 소수점 둘째 자리까지 출력
}
}
결론
이번 강좌에서는 자바를 사용하여 평균을 구하는 간단한 알고리즘 문제를 풀어보았습니다. 평균을 구하는 문제는 기초적인 개념이지만, 다양한 변형 문제를 통해 더 깊이 있는 이해가 필요합니다. 입력 데이터의 범위나 예외 처리 등을 고려해야 할 경우도 많습니다. 향후에는 이러한 추가 요소들도 함께 다루어 보겠습니다.
코딩 테스트의 기본기를 다지기 위해 반복연습을 통해 다양한 문제를 풀어보시는 것을 추천드립니다. 감사합니다!