Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

WON.dev

chapter05 : array 본문

JAVA

chapter05 : array

GAWON 2023. 5. 16. 17:37
test_arry
Q1. 배열의 크기가 10인 배열을 선언하고
1~10까지 순서대로 값을 넣은 후
배열과 배열의 값의 합을 출력

t[] scores =  new  int[10];
	int g = 0;
	for(int i = 0; i<10;i++) {
		scores[i] = i+1;
		System.out.println(scores[i]);
		g = g+scores[i];
		
	}	
	System.out.println("G 는:"+g);

Q2. 배열 int[] answer={1,4,4,3,1,4,4,2,1,3,2}에서 	각 숫자의 갯수를 출력
	* 숫자가 1~4까지 이므로 크기 4의 배열 counter를 만들어서 각 인덱스에 1~4의 개수를 입력 및 출력

Q3. 배열 int[][] arr={{1, 2, 3, 4}, {5, 6, 7}, {8, 9}} 에서 각 값을 2씩 증가시키는 프로그램 작성
	ex) 1 2 3 4
		5 6 7
		8 9

		3 4 5 6
		7 8 9
		10 11
	* 배열을 전달 받아 데이터를 출력하는 메소드 = arrPrint
	* 배열과 증가할 값을 전달 받아 해당 값만큼 증가시키는 메소드 = addTwoArr
1.1 배열
 - 같은 타입의 데이터를 연속된 공간에 나열시키고, 각 데이터에 인덱스(index)를 부여해놓은 자료구조이다.
 - 같은 타입의 데이터만 저장할 수 있다.
 - 배열의 인덱스는 0부터 시작한다.
 - 배열이 생성되면 배열의 길이를 length 필드 값으로 사용할 수 있다.

1.2 배열 선언
 - 선언과 동시에 저장할 수 있는 데이터 타입이 결정된다.
 - 한 번 생성된 배열은 길이를 늘리거나 줄일 수 없다.(동적 배열 제외)

1.3 다차원 배열
 - 예를 들어 2(행)x3(열)의 배열을 만들 수 있다.
 	ex) int[][] scores = new int[2][3];

1.4 객체를 참조하는 배열
 - 기본 타입(byte, char, short, int, long, float, double, boolean) 배열은 직접 값을 가지고 있지만
     참조 타입(클래스, 인터페이스) 배열은 각 항목에 객체의 번지를 가지고 있다.
Test01.java
Q. 임의의 정수값 5개를 저장한 배열 중에서 인덱스가 1인 곳의 값을 출력
package org.joonzis.test;

public class Test01 {
	public static void main(String[] args) {
//		Test01.java
//		Q. 임의의 정수값 5개를 저장한 배열 중에서 인덱스가 1인 곳의 값을 출력
		
		// 1. 배열 선언		int[] arr = new int[5];
		// 2. 배열 초기화		int[] arr = {1,2,3,4,5};
		
		// 1. 임의의 정수값 5개를 저장한 배열 만들기
		// 2. 해당 배열의 1번 인덱스 값 출력
		
		int[] arr = {1,2,3,4,5};
		System.out.println(arr[1]); 
		
		
	}
}
Test02.java
Q. 10, 20, 50, 60, 13, 25, 97 의 총 7개의 정수 값을 저장한 배열을 선언 후
	60의 값이 들어있는 배열의 인덱스를 출력
package org.joonzis.test;

public class Test02 {
	public static void main(String[] args) {
//		Test02.java
//		Q. 10, 20, 50, 60, 13, 25, 97 의 총 7개의 정수 값을 저장한 배열을 선언 후
//			60의 값이 들어있는 배열의 인덱스를 출력
		
		int[] arr = {10, 20, 50, 60, 13, 25, 97};
		
		for(int i=0; i<arr.length; i++) {
			if(arr[i] == 60) {
				System.out.println("60의 인덱스 번호 : " + i);
			}
		}
		
		
		
		
		
	}
}
Test03.java
Q. Test02.java 의 값들을 모두 더하고, 총점과 평균을 출력
package org.joonzis.test;

public class Test03 {
	public static void main(String[] args) {
//		Test03.java
//		Q. Test02.java 의 값들을 모두 더하고, 총점과 평균을 출력
		
		int[] arr = {10, 20, 50, 60, 13, 25, 97};
		
		int sum = 0;	// 합계 변수 
		double avg = 0;
		
		for(int i=0; i<arr.length; i++) {
			sum += arr[i]; 
		}
		avg = (double)sum / arr.length;
		
		System.out.println("arr의 합계 : " + sum);
		System.out.println("평균 : " + avg);

		// 평균   ==    합계/개수
		//avg = (double)sum / arr.length;
		
		
		
		
		
		
	}
}
Test04.java
Q. 길이가 5인 int형 배열 선언 후, 사용자로부터 콘솔입력 받아 해당 데이터 값을 모두 더해서 합을 출력하기
package org.joonzis.test;

import java.util.Arrays;
import java.util.Scanner;

public class Test04 {
	public static void main(String[] args) {
//		Test04.java
//		1) Q. 길이가 5인 int형 배열 선언 후, 
//		2) 사용자로부터 콘솔입력 받아 
//		3) 해당 데이터 값을 모두 더해서 합을 출력하기
		
		int[] arr = new int[5];
		Scanner sc = new Scanner(System.in);
		
		// 값 입력 for문
		for(int i=0; i<arr.length; i++) {
			System.out.print(i +"번 인덱스 값 입력 >> ");
			arr[i] = sc.nextInt();
		}
		
		// System.out.println( Arrays.toString(arr) );
		
		// 합계 구하는 for
		int sum = 0;
		for(int i=0; i<arr.length; i++) {
			sum = sum + arr[i];
		}
		
		System.out.println("배열 내 값의 총 합 : " + sum);
		
		
		
		
		
	}
}
Test05. java
Q. int[] arr = {13, 22, -3, 92, 55, 5}
	배열에서 값을 바꾸고 싶은 인덱스 2개를 선택하여
	서로 값을 바꾸어 값들을 출력
package org.joonzis.test;

import java.util.Arrays;
import java.util.Scanner;

public class Test05 {
	public static void main(String[] args) {
//		Test05. java
//		Q. int[] arr = {13, 22, -3, 92, 55, 5}
//			배열에서 값을 바꾸고 싶은 인덱스 2개를 선택하여
//			서로 값을 바꾸어 값들을 출력
		
		int[] arr = {13, 22, -3, 92, 55, 5};
		
		Scanner sc = new Scanner(System.in);
		
		System.out.print("변경할 첫 번째 인덱스 >> ");
		int fir = sc.nextInt();
		
		System.out.print("변경할 두 번째 인덱스 >> ");
		int sec = sc.nextInt();
		
		System.out.println("변경 전 데이터 : " + Arrays.toString(arr));
		
		int tmp = 0; 	// 임시 변수
		tmp = arr[fir];
		arr[fir] = arr[sec];
		arr[sec] = tmp;
		
		System.out.println("변경 후 데이터 : " + Arrays.toString(arr));
		
		sc.close();
	}
}
Test06.java
Q. Test05의 배열을 이용하여 배열 내 값들의 최소, 최대값을 출력

package org.joonzis.test;

public class Test06 {
	public static void main(String[] args) {
//		Test06.java
//		Q. Test05의 배열을 이용하여 배열 내 값들의 최소, 최대값을 출력
		int[] arr = {13, 22, 3, 92, 55, 5};
		
		int max = arr[0];
		int min = arr[0];
		for(int i=0; i<arr.length; i++) {
			// 최대 값
			if(max < arr[i]) {
				max = arr[i];
			}
			
			// 최소 값
			if(min > arr[i]) {
				min = arr[i];
			}
		}
		
		System.out.println("최대 : " + max);
		System.out.println("최소 : " + min);
		
		
		
	}
}
Test07.java
		Q. 길이가 10인 int형 배열 선언 후, 사용자로부터 콘솔입력 받아 값을 저장한 뒤
		배열에 있는 정수 중에서 3의 배수만 출력해보자.
int[] arr = new int[10];
		Scanner sc = new Scanner(System.in);
		
		// 값 입력 for문
		for(int i=0; i<arr.length; i++) {
			System.out.print(i +"번 인덱스 값 입력 >> ");
			arr[i] = sc.nextInt();
		}
		
		// 출력 for문
		for(int i=0; i<arr.length; i++) {
			if(arr[i] % 3 == 0) {
				System.out.println(arr[i]);
			}
		}
		
		sc.close();
	}
}
Test08.java
Q. 성적 관리 프로그램
5명의 int형 점수를 저장하는 scores 배열을 선언하고, 점수를 입력받아 최대, 최소, 평균 점수를 출력하기
String형 배열 names를 선언하고, 학생 5명의 이름을 초기화 한 뒤 활용
실행 예)
바트의 점수 입력 >> 70
리사의 점수 입력 >> 100
package org.joonzis.test;

import java.util.Arrays;
import java.util.Scanner;

public class Test08 {
	public static void main(String[] args) {
//		Test08.java
//		Q. 성적 관리 프로그램 
//		5명의 int형 점수를 저장하는 scores 배열을 선언하고, 점수를 
//		입력받아 최대, 최소, 평균 점수를 출력하기
//		String형 배열 names를 선언하고, 학생 5명의 이름을 초기화 한 뒤 활용
//		실행 예)
//		바트의 점수 입력 >> 70
//		리사의 점수 입력 >> 100
		
		// ** 출력 내용 **
		// 최대 점수, 최소 점수, 평균 점수
		// 제일 높은 점수를 받은 학생의 점수와 이름 출력
		
		int[] scores = new int[5];
		Scanner sc = new Scanner(System.in);
		String[] names = {"김씨", "이씨", "박씨", "최씨", "정씨"};
		
		
		for(int i=0; i<scores.length; i++) {
			System.out.print(names[i] + "의 점수 입력 >> ");
			scores[i] = sc.nextInt();
		}
		
		int max = scores[0];
		int min = scores[0];
		int sum = 0;
		double avg = 0;
		int maxIdx = 0;
		
		for(int i=0; i<scores.length; i++) {
			// 최대 값
			if(max < scores[i]) {
				max = scores[i];
				maxIdx = i;
			}
			
			// 최소 값
			if(min > scores[i]) {
				min = scores[i];
			}
			
			sum += scores[i]; // 합계
		}
		avg = (double)sum/scores.length;	// 평균
		
		System.out.println("최고 점수 : " + max + ", 학생 : " + names[maxIdx]);
		System.out.println("최저 점수 : " + min);
		System.out.println("점수 평균 : " + avg);
		
		
	}
}
Test09.java
Q. 과목 이름을 입력받아 해당 과목 점수를 출력해주는 프로그램을 작성.
	무한반복을 하다가 "그만"을 입력 받으면, 프로그램 종료
★	String[] subjectArr = {"Java", "Python", "Android", "JSP", "Javascript"};
	int[] scoreArr = {95, 88, 78, 62, 55};
실행 예)
Java의 점수는 : 95
package org.joonzis.test;

import java.util.Scanner;

public class Test09 {
	public static void main(String[] args) {
//		Test09.java
//		Q. 과목 이름을 입력받아 해당 과목 점수를 출력해주는 프로그램을 작성.
//			무한반복을 하다가 "그만"을 입력 받으면, 프로그램 종료
//		★	String[] subjectArr = {"Java", "Python", "Android", "JSP", "Javascript"};
//			int[] scoreArr = {95, 88, 78, 62, 55};
//		실행 예)
//		Java의 점수는 : 95
		
		Scanner sc = new Scanner(System.in);
		String[] subjectArr = {"Java", "Python", "Android", "JSP", "Javascript"};
		int[] scoreArr = {95, 88, 78, 62, 55};
		
		while(true) {
			System.out.print("과목 이름 >> ");
			String subName = sc.next();
			
			for(int i=0; i<subjectArr.length; i++) {
				if(subName.equalsIgnoreCase(subjectArr[i])) {
					System.out.println(subjectArr[i] + "의 점수는 : " + scoreArr[i]);
				}
			}
			
			if(subName.equals("그만")) {
				break;
			}
		}
		
		sc.close();
	}
}
Test10.java
Q. 5줄로 된 교실이 있다. 각 줄마다 학생 수가 다르다.
   예시)	1줄 : 3명
   	  	2줄 : 4명
   	  	...
   	  	5줄 : 5명
   	  	각 줄마다 존재하는 학생 수를 입력 받아 학생 수 만큼만 공간을 할당하여 2차원 배열을 생성하시오.
   	  	생성 확인을 위해 할당된 공간에 정수 1을 저장하고 출력하시오.
		★ 줄은 행을 뜻함
실행 예)
1행 >>1
2행 >>2
3행 >>3
4행 >>4
5행 >>5
1
1	1
1	1	1
1	1	1	1
1	1	1	1	1


package org.joonzis.test;

import java.util.Scanner;


public class Test10 {
	public static void main(String[] args) {
//		1행 >>3
//		2행 >>2
//		3행 >>3
//		4행 >>4
//		5행 >>5
//		1	1	1
//		1	1	
//		1	1	1	
//		1	1	1	1	
//		1	1	1	1	1
		
		Scanner sc = new Scanner(System.in);
		int[][] arr = new int[5][];
		
		// 입력 for
		for(int i=0; i<arr.length; i++) {
			System.out.print((i+1) + "행 >> ");
			int row = sc.nextInt();
			arr[i] = new int[row];
			
			for(int j=0; j<arr[i].length; j++) {
				arr[i][j] = 1;
			}
		}
		
		
		for(int i=0; i<arr.length; i++) {
			for(int j=0; j<arr[i].length; j++) {
				System.out.print(arr[i][j] + "\t");
			}
			System.out.println();
		}
		
		
	}
}

'JAVA' 카테고리의 다른 글

chapter06 : OOP  (0) 2023.05.16
chapter05 : memory  (0) 2023.05.16
chapter04 : control_statement  (0) 2023.05.16
Chapter03 : Operator  (0) 2023.05.12
Chapter02 : Casting  (0) 2023.05.12