본문 바로가기

자바 JAVA

배열을 이용한 예제풀이 ㅡ 자바 기초

배열은 같은 데이터 타입의 여러 변수를 필요로 할 때 사용한다.

 

배열은 아래와 같이 선언하여 사용한다.

 

데이터타입[] 배열명 = new 데이터타입[배열크기];

  문제) 5개 정수를 입력받은 후 차례로 출력하는 프로그램 

입력예) 5 10 9 3 2
출력예) 5 10 9 3 2

 

package sample;
import java.util.*;

public class Sample
{
	public static void main(String[] args)
	{
		Scanner scn = new Scanner(System.in);

		int[] arr = new int[5];
		int i;

		for( i=0; i<5; i++)
		{
			arr[i] = scn.nextInt();
			System.out.print(arr[i] +" ");
		}
	}
}

 문제) 문자 10개를 저장할 수 있는 배열을 선언하고 10개의 문자를 입력받아 입력받은 문자를 이어서 출력하는 프로그램 

입력예) A B C D E F G H I J
출력예) ABCDEFGHIJ

 

package sample;
import java.util.*;

public class Sample
{
	public static void main(String[] args)
	{
		Scanner scn = new Scanner(System.in);

		char[] arr = new char[10];
		int i;

		for( i=0; i<10; i++)
		{
			arr[i] = scn.next().charAt(0);
			System.out.print(arr[i]);
		}
	}
}

 문제) 정수 10개를 입력받은 후 세번째, 다섯번쨰와 마지막으로 입력받은 정수를 차례로 출력하는 프로그램 

입력예) 5 3 9 6 8 4 2 8 10 1
출력예) 9 8 1

 

package sample;
import java.util.*;

public class Sample
{
	public static void main(String[] args)
	{
		Scanner scn = new Scanner(System.in);

		int[] arr = new int[10];
		int i;

		for( i=0; i<10; i++)
		{
			arr[i] = scn.nextInt();
		}

		System.out.print(arr[2]+" "+arr[4]+" "+arr[arr.length-1]);
	}
}

 문제) 최대 100개까지의 정수를 차례로 입력받다가 0이 입력되면 입력을 중단하고 짝수 번째에 입력된 정수를 모두 출력하는 프로그램 작성 

입력예) 11 25 3 9 15 6 8 7 12 0
출력예) 25 9 6 7

 

package sample;
import java.util.*;

public class Sample
{
	public static void main(String[] args)
	{
		Scanner scn = new Scanner(System.in);

		int[] arr = new int[100];
		int i, cnt = 0;

		for( i=0; i<arr.length; i++)
		{
			arr[i] = scn.nextInt();

			if( arr[i] == 0)
			{
				break;
			}

			cnt++;
		}

		for( i=1; i<cnt; i+=2)
		{
			System.out.print(arr[i]+" ");
		}
	}
}

 문제) 100개의 정수를 저장할 수 있는 배열을 선언하고 정수를 차례로 입력받다가 0이 입력되면 0을 제외하고 그때까지 입력된 정수를 가장 나중에 입력된 정수부터 차례대로 출력하는 프로그램 작성

입력예) 3 5 10 55 0
출력예) 55 10 5 3

 

package sample;
import java.util.*;

public class Sample
{
	public static void main(String[] args)
	{
		Scanner scn = new Scanner(System.in);

		int[] arr = new int[100];
		int i, cnt = 0;

		for( i=0; i<arr.length; i++)
		{
			arr[i] = scn.nextInt();

			if( arr[i] == 0)
			{
				break;
			}

			cnt++;
		}

		for( i=cnt-1; i>=0; i--)
		{
			System.out.print(arr[i]+" ");
		}
	}
}

 문제) 연도와 월을 입력받아 해당 월의 날수를 출력하다가 월이 0이면 종료하는 프로그램 (while이용)
(월이 잘못 입력되면 "잘못 입력하였습니다."를 출력)

입출력예)

 

 

 

 

 

 

 

package sample;
import java.util.*;

public class Sample
{
	public static void main(String[] args)
	{
		Scanner scn = new Scanner(System.in);

		int[] day = new int[13];
		int i, year;
      
		for( i=1; i<day.length; i++)
		{
			if( i==2)
			{
				day[i] = 28;
			}
			else if( i==4 || i==6 || i==9 || i==11)
			{
				day[i] = 30;
			}
			else
			{
				day[i] = 31;
			}
		}

		while(true)
		{
			System.out.print("년도 : ");
			year = scn.nextInt();
			System.out.print("월 : ");
			i = scn.nextInt();

			if(i == 0)
			{
				break;
			}
			
			if(i<1 || i>12)
			{
				System.out.print("잘못 입력하였습니다.\n\n");
				continue;
			}

			else if( i==2)
			{
				if(year%400==0||((year%4==0)&&(year%100!=0)))
				{
					day[2] = 29;
				}
				else
				{
					day[2] = 28;
				}
			}	

			System.out.printf("입력하신 달의 날수는 %d일입니다.\n\n", day[i]);
		}
	}
}

 문제) 10개의 정수를 입력받아 그 중 가장 큰 수를 출력하는 프로그램

입력예) 5 10 8 55 6 31 12 24 61 2
출력예) 61

 

package sample;
import java.util.*;

public class Sample
{
	public static void main(String[] args)
	{
		Scanner scn = new Scanner(System.in);

		int[] arr = new int[10];
		int i, max;

		for( i=0; i<arr.length; i++)
		{
			arr[i] = scn.nextInt();
		}

		max = arr[0];

		for( i=1; i<arr.length; i++)
		{
			if(max<arr[i])
			{
				max = arr[i];
			}
		}

		System.out.print(max);
	}
}