정보처리기사 2018년도 Java 기출문제

업데이트:

2018년 1회

public class Test1{
	public static void main(String[] args){
		int E[] = { 95, 75, 85, 100, 50 };	// 정렬할 함수 E 선언
		int i = 0;
		int Temp = 0;
		
		do{					// 이 do는 아래 while(i<4)와 세트인 while문
			int j = i;
			do{				// 이 do는 아래 while(j<5)와 세트인 while문
				if( E[i] > E[j] ){	// E[0]값을 E[1]~E[4]의 값까지 비교해서 E[0]이 클 경우,
					Temp = E[i];
					E[i] = E[j];
					E[j] = Temp;	// E[0]값과 비교값을 교환한다.
				}
				j++;			// 내부 while문에서는 j값만 증가시킴. 즉, 내부 while문을 한 번 돌릴 때마다 E[i]의 값에 배열의 최소값이 위치하게 됨
			} while( j<5 );
			i++;				// 외부 while문에서는 i값이 증가되므로, E[0]~E[3]까지 순서대로 값이 정렬됨
		} while( i<4 );
		
		for(int a=0; a<5; a++){
			System.out.printf(E[a]+"\t");	// 위의 이중 while문으로부터 정렬된 배열 E의 값을 탭과 함께 출력
		}
		System.out.println();
	}
}

50 75 85 95 100

do~while문의 사용법: do { 처리 } while( 조건문 )

2018년 2회

public class Problem{
	public static void main(String[] args){
		int[][] a = new int[3][5];
		for(int i=0; i<3; i++){					// 행렬 a의 행을 0부터 2까지 돌림
			for(int j=0; j<5; j++){				// 행렬 a의 열을 0부터 4까지 돌림
				a[i][j] = i+j;				// 행렬 a의 각 값은 '행의 수+열의 수' 로 한다
				System.out.printf("%d", a[i][j]);	// 행렬 a의 각 값을 출력
			}
			System.out.println();
		}
	}
}

0 1 2 3 4
1 2 3 4 5
2 3 4 5 6

2018년 3회

public class Problem{
	public static void main(String[] args){
		int a, b, c, sum;
		a = b = 1;
		sum = a+b;

		for(int i=3; i<=5; i++){
			c = a+b;
			sum += c;
			a = b;
			b = c;
		}
		System.out.println(sum);
	}
}

12

이런 문제같은 경우는 변수별로 표를 만들어서 확인하는 게 최고임

|:--------:|:--------:|:--------:|:--------:| | **i** | 3 | 4 | 5 | | **a** | 1 | 1 | 2 | | **b** | 1 | 2 | 3 | | **c** | 2 | 3 | 5 | | **sum** | 4 | 7 | 12 | | **a(next)** | 1 | 2 | 3 | | **b(next)** | 2 | 3 | 5 |