상세 컨텐츠

본문 제목

[Java] 자바 배열 문제풀이 & 연습풀이

1 a n G u a g e /JAVA

by 동혼 2019. 7. 6. 08:43

본문

 

 

변수 선언은 맨 위에서만 하며 여러문제를 주석처리하며 풀어나갔습니다

 

 

- 아래 문제들에 쓰이는 변수와 import 선언

- 만일 아래 변수가 아닐경우 따로 기제하겠습니다 ( 다른 class 에 코드작성 ) 

 

import java.lang.reflect.Array;

import java.util.Arrays;

import java.util.Random;

import java.util.Scanner;

 

public class Array1 {

    public static void main(String[] args) {

 

        Scanner sc = new Scanner(System.in);

        Random r = new Random();

 

        int[] array1;

        int [] ans = {14321};

        String [] ans1 = new String[5];

        

        array1 = new int[5];

        int tmp = 0;

        int i = 0, to = 0, k = 0;

        

        int max;

        int min;

 

Colored by Color Scripter

 

 

 

 

 

 

 

--------------------------------------------------

 

 

 

 

 

 

 

 

 

                // 값을 입력받고 출력하라 

        System.out.printf("정수 5개 입력 > ");

        for (i=0 ; i< array1.length ; i++) {

            array1[i] = sc.nextInt();

        }

        

        for (k=0 ; k< array1.length ; k++) {

            System.out.printf("%d  ", array1[k]);

        }    

 

Colored by Color Scripter

 

 

 

--------------------------------------------------

 

 

정답이 배열에 저장되있고,

답을 수기로 입력하면

채점을 해주는 프로그램

 

//sol1) 답이 맞는지 아닌지를 확인하라

        

        for (i = 0; i < array1.length; i++) {

            System.out.printf(" %d 번째 답 > ", i + 1);

            array1[i] = sc.nextInt();

            if ( ans[i] != array1[i] ) ans1[i]="X" ;

            else if ( ans[i] == array1[i] ) {

                ans1[i]="O";

                to+=20;

            }

        }

        

        System.out.printf("정답 확인  :  ");

        for (i = 0; i < ans1.length; i++) {

            System.out.printf("%s  ", ans1[i]);

        }

 

        System.out.printf("총점 : %d" ,to);

        

 

Colored by Color Scripter

 

 

// sol2) 

        for (i = 0; i < array1.length; i++) {

            System.out.printf(" %d 번째 답 > ", i + 1);

            array1[i] = sc.nextInt();

            if ( ans[i] != array1[i] ) array1[i]=0;

            else if ( ans[i] == array1[i] ) {

                array1[i]=1;

                to+=20;

            }

        }

        

        System.out.printf("정답 확인  :  ");

        for (i = 0; i < ans1.length; i++) {

            

            if ( array1[i]==1System.out.printf("O ");

            else if (  array1[i]==0System.out.printf("X ");

            

        }

        System.out.printf("\n총점 : %d" ,to);

        

Colored by Color Scripter

 

--------------------------------------------------

 

 

 

입력받은 값 들의 총 합과 평균을 구하는 프로그램

 

// 입력한 값의 총 합과 평균은 ?

        for (i = 0; i < array1.length; i++) {

            System.out.printf(" %d 번째 입력 > ", i + 1);

            array1[i] = sc.nextInt();

            to += array1[i];

        }

        max = array1[0]; // 위에 포문에 max, min 이 들어있다면

        min = array1[0];

        

        System.out.printf("입력된 점수 :  ");

        for (i = 0; i < array1.length; i++) {

 

            if (max < array1[i]) max = array1[i];

            if (min > array1[i]) min = array1[i];

            System.out.printf("%d  ", array1[i]);

        }

 

        System.out.printf("\n\n최고 점  : %d   \n", max);

        System.out.printf("최저 점  : %d   \n", min);

        System.out.printf("총합  : %d    평균 : %.3f\n", to, ((double) to / array1.length));

        

Colored by Color Scripter

 

 

 

--------------------------------------------------

 

 

 

배열 중에 가장 큰 값을 구하는 프로그램

 

// 가장 큰 값 구하는 방법 

        // sol1 ) 

        max = array1[0];

        for(i=0; i<array1.length; i++) {

            if (array1[i]>max)

                max=array1[i];

        }

          System.out.println("가장 큰 값은 "+max+"입니다.");

        

         

        for (i=0 ; i< array1.length ; i++) {

            array1[i] = r.nextInt(55)-100;

        }

 

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

 

 

 

sol2 + 버블정렬

 

(정렬은 나중에 따로 게시글을 작성할 예정이다)

for (k=0 ; k< array1.length ; k++) {            //겸 버블 정렬

            for (i=0 ; i< array1.length ; i++) {        //이중포문으로 작성 안 할경우 최댓값, 최솟값만 구할 수 있다 (정렬안됨)

                

                if (i<9) {

                    if (array1[i] > array1[i+1])  {

                        tmp = array1[i];

                        array1[i]=array1[i+1];

                        array1[i+1]=tmp;

                    }

                }

            }

        }

        System.out.printf("가장 큰 값은 %d 이다\n\n" , array1[9]);

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

        

Colored by Color Scripter


괄호를 최소화 하여 가독성을 높히고싶네요

 

 

--------------------------------------------------

 

배열안의 짝수를 판별하는 코드

 

 

// 배열안의 짝수와 총 갯수 출력하기

        

        System.out.printf("안에 들어있는 짝수는  " );

        for (i=0 ; i< ans.length ; i++) {

            if (ans[i]%2==0) {

                System.out.printf("%d  ", ans[i] );

                to++;

            }

        }

        System.out.printf("이고 총  %d 개이다 \n\n" ,to);

 

        

Colored by Color Scripter

 

 

 

 

 

 

--------------------------------------------------

 

 

값을 입력받고 (배열 초기화 시키고 )

출력하는 코드 

// 값을 입력받고 출력하라 

        System.out.printf("정수 5개 입력 > ");

        for (i=0 ; i< array1.length ; i++) {

            array1[i] = sc.nextInt();

        }

        

        for (k=0 ; k< array1.length ; k++) {

            System.out.printf("%d  ", array1[k]);

        }    

 

Colored by Color Scripter

 

 

--------------------------------------------------

 

 

 

배열안에 있는 숫자 만큼 별을 출력하는 코드

 

import java.util.Random;

import java.util.Scanner;

 

public class Array2 {

 

    public static void main(String[] args) {

 

        Scanner sc = new Scanner(System.in);

        Random r = new Random();

    

        int[] star= {34421};

        int i=0, k=0, j=0;

        

        for(; i<star.length ; i++) {

            

            System.out.printf("%d :  ", star[i]);

            

            for ( k=0 ; k <star[i] ; k++) {

                System.out.printf("*");

            }

            System.out.printf("\n");

            

        }

        

        

    }

 

}

 

 

Colored by Color Scripter

 

 

--------------------------------------------------

 

2차원 배열문제 

 

아래문제부터 변수는 이와같다

 

public class ArrMatter {

    public static void main(String[] args) {

 

        int[][] array = new int[5][5];

 

        int i = 0, j = 0;

        int cnt = 0;

 

 

 

 

 

 

 

 

--------------------------------------------------

 

 

 

5행 5열 크기의 2차원 배열 array를 선언하고 1~25까지 초기화 하기

 

///////////// 5행 5열 크기의 2차원 배열 array를 선언하고 1~25까지 초기화 하세요

 

        for (i = 0; i < array.length; i++) {

            for (j = 0; j < array[i].length; j++) {

                array[i][j] = ++cnt;

                System.out.printf("%3d", array[i][j]);

            }

            System.out.println();

        }

 

Colored by Color Scripter

 

 

 

 

--------------------------------------------------

 

 

값이 세로로 증가하는 코드 ( 위에는 가로로 증가하였다)

 

cnt=0;

        for (i = 0; i < array.length; i++) {          

            for (j = 0; j < array[i].length; j++) {       

                array[j][i] = ++cnt;

            }

        }

        

        

        for (i = 0; i < array.length; i++) {          

            for (j = 0; j < array[i].length; j++) {       

                System.out.printf("%3d", array[i][j]);

            }

            System.out.println();

        }

 

Colored by Color Scripter

 

 

 

 

--------------------------------------------------

 

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

 

처럼 ㄹ형태로 출력되는 코드

 

cnt=0;

for (i = 0; i < array.length; i++) { 

            

            if ((i+1) % 2 == 1) {                 // 홀수면 +1 (오른쪽 증가)

                for (j = 0; j < array[i].length; j++) {

                    array[i][j] = ++cnt;

                }

            }

            else if ((i+1) % 2 == 0) {                         // 짝수면 -1 (왼쪽으로 증가)

                for (j = array[i].length-1 ; j >= 0; j--) {

                    array[i][j] = ++cnt;

                }

            }

        }

 

        for (i = 0; i < array.length; i++) { // 출력 for문 

            for (j = 0; j < array[i].length; j++) {

                System.out.printf("%3d", array[i][j]);

            }

            System.out.println();

        }

 

Colored by Color Scripter

 

 

 

 

관련글 더보기

댓글 영역