배열 의 정의, 복제, 최대값 구하기
2019. 5. 16. 17:26ㆍ컴퓨터공학기초 및 이론/자료구조&알고리즘
같은 자료형의 변수로 이루어진 구성요소가 모인 것
예제:
class IntArray {
public static void main(String[] args) {
int[] a = new int[5]; //배열의 선언 - int 자료형으로 5칸의 배열
a[0] = 11; // 0 번째 배열칸에 11 저장
a[1] = 23;
a[2] = 40;
a[3] = a[2] * 2; // 3번째(인덱스2) 배열 값 곱하기 2 를 4번째 배열칸(인덱스3)에 저장
a[4] = a[0] + a[1]; // int형이므로 배열 속 값 간의 연산 가능, 덧셈 결과를 5번째(인덱스4) 배열칸에 저장
//반복문을 통해 배열의 결과값을 나열, length는 배열의 길이를 나타냄, i는 인덱스
for (int i=0; i < a.length; i++){
System.out.println("a[" + i + "] = " +a[i] );
}
}
}
배열은 new를 통해 참조할 수 있다
int[] a;
a = new int[5];
배열은 복제가 가능하다.
class CloneArray {
public static void main(String[] args) {
int[] a = {1,2,3,4,5}; //a라는 이름으로 다섯칸의 배열을 선언하고 값을 넣는다
int[] b = a.clone(); //b는 a의 복제를 참조한다
b[3] = 0; //한 요소에만 0을 대입
//반복문으로 a 배열의 내용을 확인한다
System.out.print("a =");
for(int i = 0; i < a.length; i++){
System.out.print(" " + a[i]);
}
//반복문으로 b 배열의 내용을 확인한다
//4번째 값은 복제 후 새로 0을 대입했기 때문에 a배열과 차이가 있다
System.out.print("\nb =");
for(int i = 0; i < b.length; i++){
System.out.print(" " + b[i]);
}
}
}
배열에서 최대 값 구하기
import java.util.Scanner;
class MaxOfArray {
static int maxOf(int[] a){
//max의 값에 첫 인덱스의 값을 넣고 반복문을 돌리면서 크기를 비교하여 큰 값이 나오면 max 변수의 값을 바꿔준다.
int max = a[0];
for(int i = 1; i < a.length; i++){
if(a[i] > max)
max = a[i];
}
return max;
}
public static void main(String[] args) {
Scanner stdIn = new Scanner(System.in);
System.out.println("배열의 최대값을 구한다");
System.out.print("배열 크기 입력:");
int size = stdIn.nextInt(); //배열의 사이즈를 입력
int[] list = new int[size]; //size 크기의 배열을 생성
for(int i = 0; i < size; i ++){
System.out.print("list["+i+"] 번째 값 :"); //배열에 값을 넣는다
list[i] = stdIn.nextInt();
}
System.out.println("최대값은 "+maxOf(list)+ "입니다."); //maxOf 메소드를 참조하여 최대값을 보여준다
}
}
'컴퓨터공학기초 및 이론 > 자료구조&알고리즘' 카테고리의 다른 글
큐(queue)와 링 버퍼(ring buffer) 연결 리스트 (Linked list) (0) | 2019.05.27 |
---|---|
복잡도와 점근표기법(빅오표기법) (0) | 2019.05.21 |
이진 탐색 (binary-search) (0) | 2019.05.21 |
보초법 sentinel method (0) | 2019.05.20 |
선형검색(순차검색) linear search, sequential search (0) | 2019.05.20 |