자바 6일차

달달한스위츠·2024년 2월 6일

자바배우기

목록 보기
6/43

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

0개의 댓글