본문 바로가기

Java 실전 적용

코딩은 실전이다 - (4) 배열을 활용해 값 출력하기

728x90

 

 

  [1]

     첫 행의 입력값은 배열의 크기가 되고, 배열의 크기만큼 반복을 돌면서 입력받은 수들을 배열에 순서대로 저장

 

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

public class Quiz11 {
	
	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		System.out.print("배열의 크기:");
		int length = sc.nextInt();
		
		int [] arr = new int[length];
		int i = 0;
		
		while(i < length) {
			
			int num = sc.nextInt();
			arr[i] = num;
	
			i++;
		}
		System.out.println(Arrays.toString(arr));
		
	}
}

 

[ 문제 1의 코드 ]

 


   1) 첫 행의 입력값은 배열의 크기가 되고

        Scanner sc = new Scanner (System.in);

          System.out.print("배열의 크기:");
          int length = sc.nextInt(); //Scanner를 이용해 배열의 크기 입력 받기
              e.g ) 배열의 크기 5 입력

           int [ ] arr = new int [ length ];


     2) 배열의 크기만큼 반복을 돌면서

           int i = 0;
           while ( i < length ) { // 배열의 크기만큼 배열 생성


     3) 입력받은 수들배열에 순서대로 저장

          int num = sc.nextInt();    // Scanner로 입력받기 e.g ) 5, 10, 59, 40, 28 입력
          arr[i] = num;  //입력받은 값들을 순서대로 배열에 저장 e.g) [5, 10, 59, 40, 28] 순서대로 저장

          i++;
 
        System.out.println( Arrays.toString(arr) ); // [5, 10, 59, 40, 28]
       }

 

 

[ 문제 1의 코드 결과 출력 ]

 

 

 

 

 

[2]
   절대 중복되지 않는 3개의 숫자를 뽑기
   ( 배열을 랜덤하게 15번 정도 섞고 0~2번째 인덱스값을 새로운 new 배열에 옮겨담기 )

 

	public static void main(String[] args) {
		
		int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
		int[] arr2 = new int[3];
	
			//int ran = (int)(Math.random() *14) +1;
			
			for(int i = 0; i <arr.length; i++) {
			int ran = (int)(Math.random() *arr.length);
			
			int temp = arr[i];
			arr[i] = arr[ran];
			arr[ran] = temp;
			
			
	}
			System.out.println(Arrays.toString(arr));
		
			for(int j =0; j<=2; j++) {//int i =0; i < newArr.length; i++
			
				arr2[j] = arr[j];
			}
			
			System.out.println(Arrays.toString(arr2));
			
			
			
}

 

 

[ 문제 2의 코드 ]

 



     1) 배열을 랜덤하게 15번 정도 섞고

         int[ ] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
         int[ ] arr2 = new int[3];

           for ( int i = 0; i < arr.length; i++ ) {
           int ran = (int) (Math.random() *arr.length);    // 배열을 랜덤하게 15회 반복적으로 섞기

            int temp = arr[i];
            arr[i] = arr[ran];           // arr[i]와 arr[ran]을 임시 변수 temp를 이용해 교환하기
           arr[ran] = temp;
           }

           System.out.println(Arrays.toString(arr));


      2) 0~2번째 인덱스값을 새로운 new 배열에 옮겨담기

        for ( int j =0; j <= 2; j++ ) {
             arr2[j] = arr[j];      // new 배열을 만들어서 인덱스 0~2까지 (앞에서 3개의 숫자) 추출해서 배열에 저장
        }

         System.out.println(Arrays.toString(arr2));

         }


 

 

[ 문제 2의 코드 결과 출력 ]