코딩항해기

[과제/JAVA] 멘토시리즈 : 자바 - 06 배열 응용문제 본문

problem solving/문제 풀기

[과제/JAVA] 멘토시리즈 : 자바 - 06 배열 응용문제

miniBcake 2024. 7. 17. 14:35

 

 

문제 1. 다음 중 배열을 생성하는 방법으로 틀린 것은 무엇일까요?

4번 int[][] arr = new int[][4]

열의 자리인 뒷쪽 []를 비울 수는 있어도, 행의 자리인 앞쪽 []를 비울 수는 없다.

 

 

 

문제 2. 다음 코드의 빈칸을 완성해 주어진 배열에서 짝수만 더하여 합을 구해보세요.

for(int i=0; i<arr.length; i++){
	if(arr[i]%2==0){
    	sum += arr[i];
    }
}

 

 

 

문제 3. 철수는 동생과 카드게임을 했습니다. 카드게임에 사용된 카드는 중복되는 숫자 없이 총 10장입니다.

배열과 랜덤 함수를 이용해 철수가 게임에 사용했던 카드를 구해보세요.

카드에 적힌 숫자는 1부터 10이며, 카드는 섞여있으므로 순서는 상관없습니다.

Random rd = new Random();

int[] cards = {2, 1, 3, 5, 4, 6, 9, 7, 8, 10};

int randNum = rd.nextInt(cards.length);

System.out.println("철수가 게임에 사용한 카드는 "+cards[randNum]+"입니다.");

 

 

문제 4. 마방진은 숫자가 배열되어 있으며, 가로의 합, 세로의 합, 대각선의 합이 모두 동일하게 설계되어있습니다. 2차원 배열을 이용해 마방진을 구현해보세요.

 

조건: 배열은 5*5로 합니다. / 시작 위치는 (0, 2)입니다. / 마방진에 들어가는 숫자는 1부터 시작합니다.

int[][] arr = new int[5][5];
int num = 1;
arr[0][2] = num++;
arr[4][3] = num++;
arr[3][4] = num++;
arr[1][1] = num++;
arr[2][1] = num++;
arr[1][2] = num++;
arr[0][3] = num++;
arr[4][4] = num++;
arr[3][0] = num++;
arr[4][0] = num++;
arr[3][1] = num++;
arr[2][2] = num++;
arr[1][3] = num++;
arr[0][4] = num++;
// 여기까지가 15
arr[1][4] = num++;
arr[0][0] = num++;
arr[4][1] = num++;
arr[3][2] = num++;
arr[2][3] = num++;
arr[3][3] = num++;
arr[2][4] = num++;
arr[1][0] = num++;
arr[0][1] = num++;