N개의 랜덤수
랜덤수는 1~10까지
평균출력
평균보다 높은 값들 저장, 출력
public static void main(String[] args) {
// 1. 문제
// 2. 풀이
// 3. 2 -> 코드
// 1. N개의 랜덤수를 생성
// 2. 랜덤수는 1~10까지중에서 생성된다고합니다!~~
// ex) 6 : 10 1 2 2 3 4
// 3. 이 랜덤수들의 평균을 출력
// 4. 평균보다 높은 값들을 '저장', 이후에 출력
// ★ 풀이를 한국어로 작성해보자! ★
// 1. Random를 생성
// 2. N을 결정해야함
// 3. N개만큼의 랜덤수를 생성
// 4. 총합 --->> 평균
// 5. 평균보다 높은 값들을 저장할 공간 생성
// 6. 5의 공간에 값 저장
// 7. 6을 출력
// [1]
Random rand=new Random();
int N=rand.nextInt(10)+1;
System.out.println("N: "+N);
// rand.nextInt(101) --->> 0~100
// rand.nextInt(10) + 1 --->> 1~10
// [3]
// 배열쓰고싶다!
// : 배열 3요소를 모두 만족하므로, 사용가능!
int[] data=new int[N];
for(int i=0;i<data.length;i++) {
data[i]=rand.nextInt(10)+1;
}
// [4]
int sum=0;
// 향상된 for문 == forEach
for(int v:data) {
System.out.println("랜덤수 "+v);
sum+=v;
}
System.out.println("총합: "+sum);
double avg=sum*1.0/data.length;
System.out.println("평균: "+avg);
// [5] 평균보다 높은 값들을 저장할 공간 생성
// 배열 3요소 확인 중...
// : 현재 배열의 개수를 알수가없다!
// a) 예상
// b) 확인후 배열생성 --->> "평균보다 높은값들이 몇개일까?"
int num=0;
for(int v:data) {
if(v>avg) { // 평균보다 높나요?
num++;
}
}
System.out.println("평균보다 높은값들은 "+num+"개"); // b 완료
// [6]
int[] data2=new int[num]; // 평균보다 높은 값들을 저장할 공간 생성 완료
int j=0; // data2 배열에대한 인덱스
for(int i=0;i<data.length;i++) {
if(data[i]>avg) { // 평균보다 높을때만
data2[j++]=data[i];
// => data[i]를 data2[j]에 대입하고,
// j가 한칸이동
}
}
// [7]
System.out.print("평균보다 큰값은...");
for(int v:data2) {
System.out.print(v+" ");
}
System.out.println("입니다.");
}
'Test > JAVA Test' 카테고리의 다른 글
중복 없는 랜덤수 생성 (0) | 2023.05.14 |
---|---|
랜덤수 총합, 평균 (0) | 2023.05.14 |
학생 점수 랜덤으로 생성 (0) | 2023.05.14 |
별찍기03 (0) | 2023.05.14 |
별찍기02 (0) | 2023.05.14 |