안녕하세요, 작가 J입니다. 이번에는 Java로 배열을 선언하고 랜덤 수로 초기화한 후, 배열에서 가장 큰 수와 작은 수를 각각 출력하는 프로그램을 작성해 보겠습니다. 이 예제는 배열과 랜덤 숫자 생성, 그리고 반복문을 활용하여 배열 내의 최대값과 최소값을 찾는 방법을 익히는 데 도움이 될 것입니다.
이번에 풀어볼 문제는 다음과 같습니다.
[Java Festival 10] 배열을 랜덤 수로 초기화하고 최대값과 최소값 출력하기
8칸 크기의 배열을 선언하고 랜덤수로 초기화 한 후 가장 큰 수와 작은 수를 각각 출력하시오.
문제 설명
이 문제는 8칸 크기의 배열을 선언하고, 이를 랜덤 수로 초기화한 다음, 배열 내에서 가장 큰 수와 가장 작은 수를 찾는 프로그램을 작성하는 것입니다. 이를 통해 배열의 기본 개념과 배열 내의 값을 처리하는 방법을 배울 수 있습니다.
코드 풀이
먼저, 이 문제를 해결하기 위한 자바 코드를 보겠습니다.
import java.util.Random;
public class Ex10 {
public static void main(String[] args) {
Random rd = new Random();
int[] arr = new int[8];
// 배열을 랜덤 수로 초기화
for (int i = 0; i < arr.length; i++) {
arr[i] = rd.nextInt(100) + 1; // 1에서 100 사이의 랜덤 수로 초기화
}
// 최대값과 최소값을 첫 번째 배열 요소로 초기화
int maxNum = arr[0];
int minNum = arr[0];
// 배열의 모든 값 출력 및 최대값과 최소값 찾기
System.out.print("배열에 있는 모든 값: ");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
if (arr[i] > maxNum) {
maxNum = arr[i];
}
if (arr[i] < minNum) {
minNum = arr[i];
}
}
System.out.println();
System.out.println("가장 큰 값: " + maxNum);
System.out.println("가장 작은 값: " + minNum);
}
}
이 풀이는 배열에 있는 모든값 출력과 최대값, 최소값을 찾는 로직이 포함되어 있습니다. 이 부분을 나눠서 처리하셔도 됩니다. 먼저 최대값과 최소값을 배열의 첫 번째 요소로 초기화 시켜줍니다. for문을 반복하면서, 현재 요소가 최대값보다 크면 최대값을 갱신. 현재 요소가 최소값보다 작으면 최소값을 갱신해 줍니다. 모두 같은 for문 안에서 진행됩니다.
이는 여러분도 하셨는지 모르겠지만, 1등 뽑기 게임을 예로 들면 좋을 것 같습니다. 많은 횟수를 기록하면 1등이 되는 게임(예: 제기차기, 두더지게임, 펀치머신 등)은 처음 플레이를 하는 사람이 기존에 아무 기록도 없기 때문에 1등입니다. 그리고 1등보다 더 많은 점수를 기록하는 사람이 1등으로 변경됩니다. 이러한 원리를 생각하시면 이해가 편하실 것 같습니다.
마무리
이번 예제에서는 배열을 랜덤 수로 초기화하고, 배열 내에서 최대값과 최소값을 찾는 방법을 배웠습니다. 이를 통해 배열의 기본 개념과 배열 내의 값을 처리하는 방법을 익힐 수 있었습니다. 또한, 랜덤 숫자를 생성하고 이를 배열에 저장하는 방법을 배웠습니다.
프로그래밍의 기본 원리를 이해하고 이를 응용하는 것은 매우 중요합니다. 특히 이번 예제와 같이 배열을 활용하여 다양한 문제를 해결하는 과정에서 기본기를 탄탄히 다지는 것이 좋습니다. 앞으로도 다양한 예제를 통해 여러분의 프로그래밍 실력을 더욱 향상시킬 수 있도록 노력하겠습니다.
프로그래밍을 처음 시작하는 비전공자도 충분히 이해할 수 있도록 설명을 작성했으니, 도움이 되길 바랍니다. 앞으로도 계속해서 유익한 내용을 공유하도록 하겠습니다. 감사합니다!
'프로그래밍 기초 > Java Festival' 카테고리의 다른 글
[Java Festival] 11. 두 개의 정수로 나누어지는지 판별하는 메소드 작성하기 (0) | 2024.06.24 |
---|---|
[Java Festival 번외] Scanner와 Random 객체, 그리고 close 메소드에 대해 알아보기 (0) | 2024.06.24 |
[Java Festival] 09. for문을 사용하여 A부터 Z까지 출력하기(ASCII 코드 사용) (0) | 2024.06.23 |
[Java Festival] 08. 정수를 입력받아 1의 자리에서 반올림하기 (0) | 2024.06.23 |
[Java Festival] Bonus 01. 숫자 입력 및 뺄셈 프로그램 (0) | 2024.06.22 |