1. 배열 자료 구조
배열을 배열에 대입하고 값을 입력하면 같은 메모리공간을 공유하기 때문에
둘중에 하나의 변수에 새로운 값을 대입해주어도 두 배열 모두 수정된 값으로 출력된다
int intArr[] = new int[5];
int mArr[] = intArr;
for(int i = 0; i < 5; i++) {
intArr[i] = i;
}
for (int j = 0; j < 5; j++) {
System.out.println(intArr[j]);
}
System.out.println("------------");
for (int k = 0; k < 5; k++) {
System.out.println(mArr[k]);
}
mArr[2] = 100;
System.out.println("------------");
for (int k = 0; k < 5; k++) {
System.out.println(intArr[k]);
}
2. 최대/최소
문제 ) 5개의 숫자를 입력받아서 가장 큰 수와 가장 작은 수를 출력하시오.
Scanner scan = new Scanner(System.in);
System.out.println("숫자 5개를 입력하세요.");
int numArr[] = new int[5];
//5개 숫자 입력 처리
for (int i = 0; i < 5; i++) {
numArr[i] = scan.nextInt();
}
//최대값/최소값 찾기
int max = 0, min = 9999;
for (int j = 0; j < 5; j++) {
//최대값 비교
if(max < numArr[j]) {
max = numArr[j];
}
//최소값 비교
if(min > numArr[j]) {
min = numArr[j];
}
}
System.out.println("가장 큰 값은 " + max + ", 가장 작은 값은 " + min);
3. SWAP
변수 a와 변수 b의 값을 서로 교환하려면?
변수c를 만들어서 c에 a의 값을 대입, a에 b의 값을 대입, c에 a의 값을 대입.
int num1 = scan.nextInt();
int num2 = scan.nextInt();
int temp = 0;
temp = num1;
num1 = num2;
num2 = temp;
4. 버블 정렬
버블 정렬 : 첫 라운드 끝나면 맨 뒤에 제일 큰수가 들어가고 다음 라운드로 넘어감
1라운드 : 0번과 1번 비교, 1번과 2번 비교, 2번과 3번 비교, 3번과 4번 비교
2라운드 : 0번과 1번 비교, 1번과 2번 비교, 2번과 3번 비교
3라운드 : 0번과 1번 비교, 1번과 2번 비교
4라운드 : 0번과 1번 비교
int numArr[] = { 8, 23, 100, 26, 1};
System.out.println("정렬 전 : ");
for (int n : numArr) {
System.out.print(n + " ");
}
System.out.println();//줄바꿈 처리
int temp = 0;
System.out.println("배열의 크기: " + numArr.length);
for (int i = 0; i < numArr.length; i++) {//라운드 횟수
for (int j = 0; j < numArr.length - i - 1; j++) {
//조건식에서 -i해주고 -1까지 해주는 이유는 if 문에서 numArr[j + 1]으로 비교해야해서
//배열번호가 초과되지 않도록 조절해준것.
if(numArr[j] > numArr[j + 1]) {
temp = numArr[j];
numArr[j] = numArr[j+1];
numArr[j+1] = temp;
}
}
}
System.out.println("버블 정렬 후 : ");
for (int i = 0; i < numArr.length; i++) {
System.out.printf(numArr[i] + " ");
}
//출력 for문 아래 for문처럼도 쓸 수 있음
for (int n : numArr) {
System.out.printf(n + " ");
}
5. 선택 정렬
for (int i = 0; i < numArr.length; i++) {
for (int j = numArr.length-1; j < numArr.length - i - 1; j++) {
if(numArr[j] > numArr[j]) {
temp = numArr[j];
numArr[j] = numArr[j+1];
numArr[j+1] = temp;
}
}
}
System.out.println();
System.out.println("선택 정렬 후 : ");
for (int n : numArr) {
System.out.printf(n + " ");
}
'JAVA' 카테고리의 다른 글
JAVA(15) - (0) | 2020.03.12 |
---|---|
JAVA(14) - 가계부 만들어보기 (1) | 2020.03.11 |
JAVA(12) - 학생 관리 프로그램/버퍼/버퍼에 있는 엔터 제거 방법 (0) | 2020.03.11 |
JAVA(11) - 메소드/메소드 특징/메소드 종류/작성 형식/main 메소드/4칙 연산 계산기/파라미터/반환값/반환형 (0) | 2020.03.10 |
JAVA(10) - 배열(Array)/선언 방식/공간 사용(대입)/성적 입력 프로그램/향상된 for문 (0) | 2020.03.09 |