국비 6일차_2

강지수·2023년 12월 19일
0

국비교육

목록 보기
12/97

Min & Max

배열에서 최소값, 최대값을 출력하세요
최소값 : min, 최대값 : max
		int[] arr= {80, 40, 70, 20, 30};
		int min=100;
		int max=0;
		
		for (int i=0;i<arr.length;i++) {
			if(min>arr[i]) min=arr[i];
			if(max<arr[i]) max=arr[i];
		}
		System.out.println("min:"+min);
		System.out.println("max:"+max);

결과

min:20
max:80

강사님의 코드

		int[] arr= {80, 40, 70, 20, 30};
		int min=arr[0];
		int max=arr[0];
		
		for (int i=0;i<arr.length;i++) {
			if(min>arr[i]) {
				min=arr[i];
			}
			if(max<arr[i]) {
				max=arr[i];
			}
		}
		System.out.println("min : "+min);
		System.out.println("max : "+max);

결과

min : 20
max : 80

min, max 초기값을 arr[0] 으로 줌으로써 그 안의 값들끼리 비교하게 만든다.


배열에서의 값의 위치를 알아보기

		int[] s= {0,10,20,30,40,50,60,70,80,90,100};
		int value,index=-1;
		Scanner scan=new Scanner(System.in);
		System.out.println("탐색할 값을 입력하세요");		
		value=scan.nextInt();
		
		for (int i=0;i<s.length;i++) {
			if(s[i]==value) {
				index=i;
			}
		}
		System.out.println(value+"값은 "+index+" 위치에 있습니다.");

결과


2차원 배열

행과 열로 이루어진 배열
행 : 가로줄 (x축)
열 : 세로줄 (y축)

x축만 있는 것이 앞서 배운 배열 (1차원 배열)
z축까지 있다면 3차원 배열이 된다.

=> 행만 있는 2차원 배열은 가능, 열만 있는 2차원 배열은 불가능
=> 따라서 앞의 대괄호에 숫자만 있는 배열은 가능, 뒤의 대괄호에 숫자만 있는 배열은 불가능

		2차원 배열 선언
        
		int[][] arr=new int[4][3];

		2차원 배열 선언과 동시에 초기화
        
		int[][] arr= {
				{10,20,30},
				{40,50,60},
				{70,80,90},
				{100,110,120},
		};

		2차원 데이터 입력
        
		arr[0][0]=10; arr[0][1]=20; arr[0][2]=30;
		arr[1][0]=40; arr[1][1]=50; arr[1][2]=60;
		arr[2][0]=70; arr[2][1]=80; arr[2][2]=90;
		arr[3][0]=100; arr[3][1]=110; arr[3][2]=120;

		System.out.println("2차원 배열의 행의 길이: "+arr.length);
		System.out.println("2차원 배열의 열의 길이: "+arr[0].length);

결과

2차원 배열의 행의 길이: 4
2차원 배열의 열의 길이: 3

arr.length : 행의 길이
arr[i].length : 열의 길이


		2차원 배열 for문으로 출력
		for (int i = 0; i < arr.length; i++) {
			System.out.print("[ ");
			for (int j = 0; j < arr[i].length; j++) {
				System.out.print(arr[i][j]+" ");
			}
			System.out.print("]");
			System.out.println();

결과

[ 10 20 30 ]
[ 40 50 60 ]
[ 70 80 90 ]
[ 100 110 120 ]

arr 5,4
값이 1씩 증가하게 데이터 주입 후 출력
필요한 변수 추가
		int arr[][]=new int[5][4];
		int a=0;
		
		for (int i = 0; i < arr.length; i++) {
			System.out.print("[ ");
			for (int j = 0; j < arr[i].length; j++) {
				arr[i][j]=a;
				a++;
				System.out.print(arr[i][j]+" ");
			}
			System.out.print("]");
			System.out.println();
		}

결과

[ 0 1 2 3 ]
[ 4 5 6 7 ]
[ 8 9 10 11 ]
[ 12 13 14 15 ]
[ 16 17 18 19 ]

강사님의 코드

		int arr[][]=new int[5][4];
		int cnt=1;
		
		for (int i = 0; i < arr.length; i++) {
			for (int j = 0; j < arr[i].length; j++) {
				arr[i][j]=cnt++;
			}
		}
		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();
		}

결과

1	2	3	4	
5	6	7	8	
9	10	11	12	
13	14	15	16	
17	18	19	20	

불규칙한 배열

Regged : 불규칙한, 울퉁불퉁한

		불규칙한 배열
		int[][] arr=new int[5][];
		
		칼럼의 길이를 불규칙하게 선언할 수 있음.
		arr[0]=new int[1];
		arr[1]=new int[2];
		arr[2]=new int[3];
		arr[3]=new int[4];
		arr[4]=new int[5];
		입력
		int cnt=1;
		for (int i = 0; i < arr.length; i++) {
			for (int j = 0; j < arr[i].length; j++) {
				arr[i][j]=cnt++;
			}
		}
		출력
		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();
		}

결과

1	
2	3	
4	5	6	
7	8	9	10	
11	12	13	14	15	

2차원배열에서 열의 개수를 불규칙하게 설정할 수 있다.


오늘 자바는 여기까지


리눅스(VMware) - root 사용자로 로그인 - terminal 실행


리눅스

ls : dir 내부 목록 명령어
ls -l : 목록 세부 확인 명령어
ll : ls -l 과 같은 기능
ls -al : . 과 .. 까지 모두 보여주는 명령어

rm 파일명 : 파일 삭제 명령어
rm -rf 파일명 : 강제 삭제 명령어

vi 편집기

(명령상태)
:1,2 co 3
line 1과 2의 내용을 line 3으로 복사

:1,2 m 3
line 1과 2의 내용을 line 3위로 이동

x : delete 와 같은 역할
u : 실행취소
yy : line 복사
p : 붙여넣기

dw : 단어 단위로 삭제
dd : line 삭제

5x : 5글자 삭제
3x : 3글자 삭제


Linux 미션
file 이름 : ArrayRandom.java
5 x 4 배열
배열이름 : arr
랜덤으로 값 초기화 (범위 : 100~200)
출력내용 캡쳐해서 단톡에 올리기
출력 형식은 강의 내에서 연습했던 대로

내가 짠 코드

출력


Windows 미션
file 이름 : DiceMission.java
주사위를 1000번 이상 굴려서
각 면이 나오는 횟수를 출력하세요.

출력 내용
1면 : n 회
2면 : n 회
.
.
.
6면 : n 회
메일로 제출
메일 제목 : 주사위면수_홍길동
소스파일을 텍스트 붙여넣기로 제출하세요.

내가 생각한 알고리즘

내가 짠 코드

		Random random=new Random();
		int arr[]=new int[6];		
		int sum=0;
		
		for (int i = 0; i < 1000; i++) {
			int dice=random.nextInt(6)+1;
			if (dice==1) arr[0]+=1;
			else if (dice==2) arr[1]+=1;
			else if (dice==3) arr[2]+=1;
			else if (dice==4) arr[3]+=1;
			else if (dice==5) arr[4]+=1;
			else if (dice==6) arr[5]+=1;
		}
		
		for (int i = 0; i < arr.length; i++) {
			System.out.println((i+1)+"면 : "+arr[i]+"회");
			sum+=arr[i];
		}
		System.out.println("총 "+sum+"회");

결과

1면 : 143회
2면 : 186회
3면 : 172회
4면 : 171회
5면 : 170회
6면 : 158회
총 1000회
profile
개발자 준비의 준비준비중..

0개의 댓글