배열의 활용
총합과 평균
xxxxxxxxxx
package ch05;
class ArrayEx05 {
public static void main(String[] args) {
int sum =0; // 총점을 저장하기 위한 변수
float average = 0f; // 평균을 저장하기 위한 변수
int[] score = {100, 88, 100, 100, 90};
for (int i=0; i < score.length ; i++ ) {
sum += score[i];
}
average = sum / (float)score.length ; // 계산결과를 float로 얻기 위함.
System.out.println("총점 : " + sum);
System.out.println("평균 : " + average);
}
}
최대값과 최소값
xxxxxxxxxx
package ch05;
class ArrayEx06 {
public static void main(String[] args) {
int[] score = { 79, 88, 91, 33, 100, 55, 95};
int max = score[0]; // 배열의 첫 번째 값으로 최대값을 초기화 한다.
int min = score[0]; // 배열의 첫 번째 값으로 최소값을 초기화 한다.
for(int i=1; i < score.length;i++) {
if(score[i] > max) {
max = score[i];
} else if(score[i] < min) {
min = score[i];
}
} // end of for
System.out.println("최대값 :" + max);
System.out.println("최소값 :" + min);
} // end of main
} // end of class
섞기(shuffle) - 확인 후 로또번호 만들기
xxxxxxxxxx
package ch05;
class ArrayEx07 {
public static void main(String[] args) {
int[] numArr = new int[10];
for (int i=0; i < numArr.length ; i++ ) {
numArr[i] = i; // 배열을 0~9의 숫자로 초기화한다.
System.out.print(numArr[i]);
}
System.out.println();
for (int i=0; i < 100; i++ ) {
int n = (int)(Math.random() * 10); // 0~9중의 한 값을 임의로 얻는다.
int tmp = numArr[0];
numArr[0] = numArr[n];
numArr[n] = tmp;
}
for (int i=0; i < numArr.length ; i++ )
System.out.print(numArr[i]);
} // main의 끝
}
로또번호 만들기
xxxxxxxxxx
package ch05;
class ArrayEx08 {
public static void main(String[] args) {
// 45개의 정수값을 저장하기 위한 배열 생성.
int[] ball = new int[45];
// 배열의 각 요소에 1~45의 값을 저장한다.
for(int i=0; i < ball.length; i++)
ball[i] = i+1; // ball[0]에 1이 저장된다.
int temp = 0; // 두 값을 바꾸는데 사용할 임시변수
int j = 0; // 임의의 값을 얻어서 저장할 변수
// 배열의 i번째 요소와 임의의 요소에 저장된 값을 서로 바꿔서 값을 섞는다.
// 0번째 부터 5번째 요소까지 모두 6개만 바꾼다.
for(int i=0; i < 6; i++) {
j = (int)(Math.random() * 45); // 0~44범위의 임의의 값을 얻는다.
temp = ball[i];
ball[i] = ball[j];
ball[j] = temp;
}
// 배열 ball의 앞에서 부터 6개의 요소를 출력한다.
for(int i=0; i < 6; i++)
System.out.printf("ball[%d]=%d%n", i, ball[i]);
}
}
임의값으로 배열 채우기
xxxxxxxxxx
package ch05;
import java.util.*; // Arrays.toString()을 사용하기 위해 추가
class ArrayEx09 {
public static void main(String[] args) {
int[] code = { -4, -1, 3, 6, 11 }; // 불연속적인 값들로 구성된 배열
int[] arr = new int[10];
for (int i=0; i < arr.length ; i++ ) {
int tmp = (int)(Math.random() * code.length); // code 임의값 선택
arr[i] = code[tmp];
}
System.out.println(Arrays.toString(arr));
} // main의 끝
}
정렬(버블 정렬)
- 배열 길이 n 일때 첫 번째부터 n-1까지 요소에 대해 크기 비교 후 자리 바꿈 반복
xxxxxxxxxx
package ch05;
class ArrayEx10 {
public static void main(String[] args) {
int[] numArr = new int[10];
for (int i=0; i < numArr.length ; i++ ) {
System.out.print(numArr[i] = (int)(Math.random() * 10));
}
System.out.println();
for (int i=0; i < numArr.length-1 ; i++ ) {
boolean changed = false; // 자리바꿈이 발생했는지를 체크한다.
for (int j=0; j < numArr.length-1-i ;j++) {
if(numArr[j] > numArr[j+1]) { // 옆의 값이 작으면 서로 바꾼다.
int temp = numArr[j];
numArr[j] = numArr[j+1];
numArr[j+1] = temp;
changed = true; // 자리바꿈이 발생했으니 changed를 true로.
}
} // end for j
if (!changed) break; // 자리바꿈이 없으면 반복문을 벗어난다.주석 후 확인
for(int k=0; k<numArr.length;k++)
System.out.print(numArr[k]); // 정렬된 결과를 출력한다.
System.out.println();
} // end for i
} // main의 끝
}
배열에 저장된 숫자의 갯수 파악하기
xxxxxxxxxx
package ch05;
class ArrayEx11 {
public static void main(String[] args) {
int[] numArr = new int[10];
int[] counter = new int[10];
for (int i=0; i < numArr.length ; i++ ) {
numArr[i] = (int)(Math.random() * 10); // 0~9의 임의의 수를 배열에 저장
System.out.print(numArr[i]);
}
System.out.println();
for (int i=0; i < numArr.length ; i++ ) {
counter[numArr[i]]++;
}
for (int i=0; i < numArr.length ; i++ ) {
System.out.println( i +"의 개수 :"+ counter[i]);
}
} // main의 끝
}
<참고>
package ch05;
class ArrayEx11A {
public static void main(String[] args) {
int[] numArr = new int[10];
int[] counter = new int[10];
// 배열 초기값 롹인
// for (int i=0; i < counter.length ; i++ ) {
// System.out.print(counter[i]);
// }
// System.out.println();
for (int i=0; i < numArr.length ; i++ ) {
numArr[i] = (int)(Math.random() * 10); // 0~9의 임의의 수를 배열에 저장
System.out.print(numArr[i]);
}
System.out.println();
for (int i=0; i < numArr.length ; i++ ) {
// 반복으로 구현 가능
// if(numArr[i]==0) {
//counter[0]++;
// }
// if(numArr[i]==1) {
// counter[1]++;
// }
// if(numArr[i]==2) {
// counter[2]++;
// }
for(int j=0; j<numArr.length; j++) {
if(numArr[i] == j) {
counter[j]++;
}
}
}
for (int i=0; i < numArr.length ; i++ ) {
System.out.println( i +"의 개수 :"+ counter[i]);
}
} // main의 끝
}
이전글
'JAVA > 배열(array)' 카테고리의 다른 글
배열(array)_4 (2) | 2018.08.16 |
---|---|
배열(array)_3 (0) | 2018.08.16 |
배열(array)_1 (0) | 2018.08.16 |