관리 메뉴

나구리의 개발공부기록

Chapter 03 - 자바(예상문제) 본문

2024년도 수제비 실기책(6판) 내용 정리


** 자바 이론은 자바의 정석기초편 글을 참조, 여기서는 생략

1. 자바 소스 코드의 출력 결과 작성

문제 및 풀이

public class Soojebi {
	public static void main(String[] args) {
		int x = 1;
		int tX = 0, t_X = 0;
		
		tX = (x>0)?x:-x;	// 3항 연산자, x는 1이므로 x의 값이 반환됨
		if(x>0)		// x는 1이므로 if문 실행
			t_X = x;	// 1을 저장
		else
			t_X = -x;
		
		System.out.println(tX + " " + t_X);
	}
}
// 1 1

2. 자바 소스 코드의 출력 결과 작성

문제 및 풀이

public class Soojebi {
	public static void main(String[] args) {
		int a = 17;
		a += 1;	// 18
		a -= 2; // 16
		a *= 3; // 48
		a /= 4; // 12
		a %= 5; // 2
		System.out.print(a);
	}
}
// 2

3. 자바 소스 코드의 출력 결과 작성

문제 및 풀이

public class Soojebi {
	public static void main(String[] args) {
		int a = 26;
		int b = 91;
		int i = 0, g = 0;
		
		int min = a < b ? a : b;	// 26 < 91 == true, min = a
		
		for(i=2; i<min; i++) {	// 2 부터 25까지 반복문 시행(24번)
        	// 2 ~ 25의 숫자로 26, 91 둘다 나눠지는 가장 큰 수를 g에 저장
			if(a%i == 0 && b % i == 0) {
				g = i;
			}
		}
		System.out.println(g);
	}
}
// 13

4. 자바 소스 코드의 출력 결과 작성

문제 및 풀이

public class Soojebi {
	public static void main(String[] args) {
		int[] a = new int[8];
		int i = 0;
		int n = 11;
		while (n > 0) {		// n의 값이 0이하가 될 때까지 반복
			a[i++] = n % 2;	// n을 2로 나눈 나머지를 a[i]에 저장하고 i의 값을 1 증가
		// 1, 1, 0, 1
        	n /= 2;			// n의 값을 2로 나누고 그 몫을 다시 n에 저장
        // 5, 2, 1, 0 break;
		}
		for (i = 7; i >= 0; i--) {	// 배열의 값을 출력,
			System.out.print(a[i]);	// 나머지 빈값은 0으로 저장됨,
		}
	}
}
//00001011

5. 자바 소스 코드의 출력 결과 작성

문제 및 풀이

public class Soojebi {
	public static void main(String[] args) {
		int[][]	arr = new int[3][3];	// 배열 선언
		
		init(arr);	// 배열 초기화
		hourGlass(arr);	// 값을 저장
		arrayPrint(arr);
	}
	
	public static void init(int arr[][]) {	
		for(int i = 0; i<arr.length; i++) {	// 0 ~ 2까지 반복
			for(int j = 0; j<arr[0].length; j++) {	// 0 ~ 2까지 반복
				arr[i][j] = 0;	// 배열의 값을 0으로 저장
			}
		}
	}
	
	public static void hourGlass(int arr[][]) {
		int v = 0;
		for (int i = 0; i<arr.length; i++) {
			for(int j = i; j<arr[0].length; j++) {
				arr[i][j] = ++v; // v에 1을 더한 값을 저장
                // 1, 2, 3
               	// 0, 4, 5
                // 0, 0, 6
			}
		}
	}
	
	public static void arrayPrint(int arr[][]) {	// 출력하는 메서드
		for(int i = 0; i<arr.length; i++) {
			for(int j = 0; j<arr.length; j++) {
				if(arr[i][j] == 0) {	// 배열의 값이 0이면 띄어쓰기 시행 
					System.out.print(" ");
				} else {
					System.out.print(arr[i][j]);	// 0이 아니면 값출력
				}
			}
			System.out.println("");	// 2차 반복문이 종료되면 개행
		}
	}
}
//123
// 45
//  6