배열
<배열 초기화 방법 1>
int[] array;
//배열의 주소를 저장할 공간이 만들어진다.
array = new int[5]
//배열이 생성되고 그 주소가 저장된다.
//int[5] : int 5개를 저장할 공간이 만들어지고, 그 주소가 array라는 변수에 저장된다.
array(변수) = 100번지(주소)
100번지 = 첫번째 값의 주소
{0,0,0,0,0}
길이만 저장
<배열 초기화 방법 2>
array = new int[]{1,2,3,4,5};
배열 초기화 후 중괄호에 저장할 값 입력
길이와 값까지 저장
System.out.println(array);
// 출력되는 건 -> 배열의 주소
System.out.println(array[0]);
// 주소가 아닌 값을 출력시키기 위해 변수뒤에 들어갈 숫자를 붙임
(여기서 숫자 = 인덱스, 배열의 인덱스는 왼쪽부터 들어가있는 순서대로 출력된다.)
System.out.println(array[1]);
// 두번째 들어있는 값 출력됨 , 인덱스는 0부터 시작
한줄복사 : ctrl + alt + 방향키(위/아래)
값을 저장하고 싶을 때
array[0] = 10;
array[1] = 20;
array[2] = 30;
array[3] = 40;
array[4] = 50;
인덱스가 0부터 1씩 증가하는 규칙이 있어 반복문으로 만들 수 있음
반복문으로 위의 값 저장하기
for(int i = 0; i < array.length; i++){
array[i] = (i + 1) * 10;
}
array.length : 이 배열의 크기가 몇인지 저장하고 있는 메서드
for(int i = 0; i < array.length; i++){
System.out.println(array[i]);
}
10개의 정수를 저장할 수 있는 배열을 선언 및 초기화해주세요.
int array = new int[10];
배열의 모든 인덱스에 1~100사이의 랜덤한 값을 저장해주세요.
for(int i = 0; i < array.length; i++){
array[i] = (int)(Math.random() * 100) +1;
}
System.out.println(Arrays.toString(array));
Arrays.toString() 배열의 모든 값을 문자열로 출력해주는 메서드, ()안이 반드시 배열이어야 한다.
배열에 저장된 모든 값의 합계와 평균을 출력해주세요.
int sum = 0;
double avg = 0;
for(int i = 0; i < array.length; i++){
sum += array[i];
}
avg = (double) sum / array.length;
System.out.println("합계 : "+ sum +"/평균 : "+avg);
배열에 저장된 값들 중 최소값과 최대값을 출력해주세요.
내 풀이
int min = array[0]; int max = array[0]; for(int i = 0; i <= array.length; i++){ if( min > array[i]){ min = array[i]; } if( max < array[i]){ max = array[i]; } } System.out.println("최소값 :" + min + "최대값 :"+ max);
선생님 풀이
int min = arr[0]; int max = arr[0]; for(int i = 0; i < arr.length; i++){ if(arr[i] < min){ min = arr[i]; } if(max < arr[i]){ max = arr[i]; } } System.out.println("최소값 :" + min + "최대값 :"+ max);
배열의 값 섞기
int[] shuffle = new int[10];
for(int i = 0; i < shuffle.length; i++){
shuffle[i] = i+1;
}
System.out.println(Arrays.toString(shuffle));
랜덤 인덱스를 발생시켜서 인덱스 0번이랑 자리 바꾸기
내 풀이
int random = 0; for(int i = 0; i < shuffle.length; i++){ random = (int)(Math.random()*shuffle.length); int temp = shuffle[i]; shuffle[i] = shuffle[random]; shuffle[random] = temp; } System.out.println(Arrays.toString(shuffle));
선생님 풀이
for(int i = 0; i < shuffle.length * 10; i++){ int random = (int)(Math.random()* shuffle.length); int temp = shuffle[0]; shuffle[0] = shuffle[random]; shuffle[random] = temp; } System.out.println(Arrays.toString(shuffle));
1~10 사이의 랜덤값을 500번 생성하고, 각 숫자가 생성된 횟수를 출력해주세요.
내 풀이(선생님 풀이와 동일)
int[]value = new int[10]; for(int i = 0; i < 500; i++){ int num = (int)(Math.random()*10) + 1; value[ num - 1 ]++;} for (int i = 0; i < value.length; i++) { System.out.println(( i + 1 + ": " + value[i]+"번")); }