2차원 배열
package edu.java.array08;
public class ArrayMain08 {
public static void main(String[] args) {
System.out.println("2차원 배열");
// 2차원 배열 : 1차원 배열을 원소로 갖는 배열
int[] korean = {10, 20, 30}; // 1차원 배열
int[] english = {40, 50, 60}; // 1차원 배열
int[][] scores = {
korean,
english,
{70, 80, 90}
}; // 2 x 3 2차원 배열
System.out.println(scores[1][1]); // 1층 1호 or i = 1, j = 1
System.out.println(scores[0][2]); // 0층 2호 or i = 0, j = 2
System.out.println("i의 길이(개수) : " + scores.length);
System.out.println("i가 0일때 j의 길이(개수) : " + scores[0].length);
// 2차원 배열의 모든 값 출력
for(int i = 0; i < scores.length; i++) { // i만큼 반복
for(int j = 0; j < scores[i].length; j++) {
System.out.print(scores[i][j] + " ");
}
System.out.println();
}
} // end main()
} // end ArrayMain08
ackage edu.java.array09;
public class ArrayMain09 {
public static void main(String[] args) {
System.out.println();
String[] avengers = {"아이언맨","토르","헐크","캡틴"}; // 2차원
String[] villain = {"타노스","하이드라","레드스컬"}; // 2차원
String[][] characters = { // 계층구조 차원을 묶어서 3차원이 됨
avengers,
villain
};
// 모든 문자열 출력
// 문자열 2차원 -> 문자열 1차원 -> 문자열
for(String[] group : characters) {
for(String name : group) {
System.out.print(name + " ");
}
System.out.println();
}
int count = 0;
for(String[] group : characters) {
for(String name : group) {
for(int i = 0; i < name.length(); i++) {
if(name.charAt(i) == '이') {
count++;
}
}
}
}
System.out.println(count);
} // end main()
} // end ArrayMain09
package edu.java.array10;
import java.util.*;
public class ArrayMain10 {
public static void main(String[] args) {
System.out.println("<학생 점수 관리 프로그램>");
// 학생 점수를 저장하는 변수
// 변수 명명 규칙
// 1. 첫 번째 글자는 문자이거나, '$', '_' 이어야 하고 숫자로 시작할 수 없다.(필수)
// 2. 영어 대소문자가 구분된다. (필수)
// 3. 첫 문자는 영어 소문자로 시작하되, //{카멜케이스(낙타)
// 다른 단어가 붙을 경우 첫 문자를 대문자로 한다. (관례)
// 4. 문자 수(길이)의 제한은 없다.
// 5. 자바 예약어는 사용할 수 없다. (필수)
// 자바 예약어
// boolean, byte, char, private, public, new, true, if 등등
Scanner sc = new Scanner(System.in);
System.out.println("학생 수를 입력하세요>");
int stuNo = sc.nextInt();
System.out.println("입력된 학생 수 : " + stuNo);
Integer[] stuScores = new Integer[stuNo];
boolean run = true; // while문 종료 여부
while (run) {
System.out.println("---------------------------------------");
System.out.println("1. 점수입력 | 2. 점수리스트 | 3. 분석 | 4. 종료");
System.out.println("---------------------------------------");
System.out.println("선택>");
int choice = sc.nextInt();
switch (choice) {
case 1:
System.out.println("<점수입력>");
for (int i = 0; i < stuNo; i++) {
System.out.println(i + "번 학생의 점수를 입력하세요>");
stuScores[i] = sc.nextInt();
}
break;
case 2:
System.out.println("<점수리스트>");
for (int i = 0; i < stuNo; i++) {
System.out.println(i + "번 학생의 점수 : " + stuScores[i]);
}
break;
case 3:
System.out.println("<분석>");
Arrays.sort(stuScores, Collections.reverseOrder());
for (int i = 0; i < stuNo; i++) {
System.out.println((i+1)+"등 : "+stuScores[i]);
}
break;
case 4:
System.out.println("종료합니다.");
run = false;
break;
default:
break;
}
}
sc.close();
} // end main()
} // end ArrayMain10
package edu.java.array11;
public class ArraySort {
public static void main(String[] args) {
int[] arr = {1, 9, 6, 7, 3, 5, 1};
for(int i = 0; i < arr.length - 1; i++) {
int min = arr[i];
int least = i;
int tmp = 0;
for(int j = i + 1; j < arr.length; j++) {
if(arr[j] < min) {
min = arr[j];
least = j;
}
}
tmp = arr[i];
arr[i] = arr[least];
arr[least] = tmp;
}
for(int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
} // end main()
} // end ArraySort()
package edu.java.Homework;
import java.util.*;
public class 최정현_HW2 {
public static void main(String[] args) {
// 과제1 : 배열 6 8 4 2 5의 값 중에 최대값 출력하기
// * 배열 직접 선언할 것!
Integer[] arr = { 6, 8, 4, 2, 5 }; // 배열 선언
Arrays.sort(arr, Collections.reverseOrder()); // 내림차순 정렬로 가장 큰 수가 앞으로 옴
System.out.println(arr[0]); // 첫번째 값을 뽑으면 최대값
// 과제2 : 과제1의 배열(6 8 4 2 5)의 전체 합과 평균 값을 구하기
int sum = 0;
for (int i = 0; i < arr.length; i++) { // 배열에 있는 값들을 전부 더해줌
sum += arr[i];
}
System.out.println("전체 합 : " + sum); // 전체합 출력
System.out.println("평균 값 : " + (sum / (arr.length * 1.0))); // 평균값 출력
// 과제3: 피보나치 수열 20개를 출력
// 피보나치(Fibonacci) 수열: 1, 1, 2, 3, 5, 8, 13, 21, ...
// 힌트)
// f[0] = 1
// f[1] = 1
// f[n] = f[n-1] + f[n-2], n >= 2
// 1) 정수 20개를 저장할 수 있는 배열 선언
int[] f = new int[20];
// 2) 배열의 인덱스 0번째, 1번째 원소는 1로 초기화
f[0] = 1;
f[1] = 1;
// 3) 배열의 인덱스 2번째 원소부터 19번째 원소까지는 반복문을 사용해서 초기화
for (int i = 2; i < f.length; i++) {
f[i] = f[i - 1] + f[i - 2];
}
// 4) 배열의 내용을 출력
for (int i : f) {
System.out.print("[" + i + "]");
}
System.out.println(); // 한 칸 건너뛰기
// 과제4:
// int[][] array2 = {
// {95, 86},
// {44, 22, 96},
// {78, 83, 93, 87, 88}
// };
// 위 2차원 배열의 전체 합과 평균과 최대값 구하기
double avg = 0;
int max = Integer.MIN_VALUE;
int[][] array2 = { { 95, 86 }, { 44, 22, 96 }, { 78, 83, 93, 87, 88 } };
for (int i = 0; i < array2.length; i++) { // i,j를 이용한 배열의 좌표값 찾기
for (int j = 0; j < array2[i].length; j++) {
// System.out.print(array2[i][j] + " "); // 전체 값 만들어 보기
sum += array2[i][j];
if(max < array2[i][j]) {
max = array2[i][j];
}
}
// System.out.println();
avg += array2[i].length;
// System.out.println(avg);
}
System.out.println("전체 합 : " + sum);
System.out.println("평균 값 : " + (sum / avg));
System.out.println("최대 값 : " + max);
} // end main()
} // end Homework