1. 다음 중 배열을 생성하는 방법으로 틀린 것은 ?
- int[] arr = new int[4];
- int arr[] = new int[4];
- int arr[] = {1, 2, 3, 5};
- int[][] arr = new int [][4];
> 옳은 예시 - int[][] arr = new int [4][4];
2. 다음 코드의 빈칸을 완성해 주어진 배열에서 짝수만 더하여 합을 구해보세요.
public class ArrayExample {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int sum = 0;
for(int i = 0; i < arr.length; i++) {
// 빈칸 //
}
System.out.println("짝수들의 합 : " + sum);
}
}
정답 )
3. 철수는 동생과 카드 게임을 했습니다. 카드 게임에 사용된 카드는 중복되는 숫자 없이 총 10장입니다. 배열과 랜덤 함수를 이용해 철수가 게임에 사용했던 카드를 구해보세요. 카드에 적힌 숫자는 1부터 10이며, 카드는 섞여있으므로 순서는 상관없습니다.
package section06;
import java.util.Arrays;
public class PRACTICE_06_03 {
public static void main(String[] args) {
int n = 10;
int[] arr = new int[n];
for (int i = 0; i < arr.length; i++) {
arr[i] = (int)(Math.random() * 10 + 1); // 1 - 10까지 랜덤함수
for (int j = 0; j < i; j++) {
if (arr[j] == arr[i]) { // 1-10 중에 랜덤으로 선택된 수가 중복된다면
i--;
}
}
}
System.out.println(Arrays.toString(arr)); // 배열 출력
}
}
4. 마방진은 숫자가 배열되어 있으며, 가로의 합, 세로의 합, 대각선의 합이 모두 동일하게 설계되어 있습니다. 2차원 배열을 이용해 마방진을 구현해 보세요.
< 조건 >
- 배열은 5*5로 합니다.
- 시작 위치는 (0, 2)입니다.
- 마방진에 들어가는 숫자는 1부터 시작합니다.
public class MagicSquare {
public static void main(String[] args) {
int n = 5; // 마방진의 크기 (5x5)
int[][] magicSquare = new int[n][n]; // 마방진을 저장할 2차원 배열
int num = 1; // 마방진에 들어갈 숫자, 1부터 시작
int i = 0, j = 2; // 시작 위치 (0, 2)
// 마방진 생성 로직
while (num <= n * n) { // 마방진의 모든 칸에 숫자를 채울 때까지 반복
magicSquare[i][j] = num; // 현재 위치에 숫자 할당
num++; // 다음 숫자로 이동
// 다음 위치 계산
int i2 = (i - 1 + n) % n; // 위로 한 칸 이동 (범위를 벗어나면 n-1 위치로 이동)
int j2 = (j + 1) % n; // 오른쪽으로 한 칸 이동 (범위를 벗어나면 0 위치로 이동)
// 다음 위치에 이미 숫자가 할당되어 있으면 아래로 한 칸 이동
if (magicSquare[i2][j2] != 0) {
i = (i + 1) % n; // 아래로 한 칸 이동 (범위를 벗어나면 0 위치로 이동)
} else {
i = i2;
j = j2;
}
}
// 마방진 출력
for (i = 0; i < n; i++) { // 모든 행에 대해 반복
for (j = 0; j < n; j++) { // 한 행의 모든 열에 대해 반복
System.out.print(magicSquare[i][j] + " "); // 숫자와 공백 출력
}
System.out.println(); // 한 행 출력 후 줄 바꿈
}
}
}
'책 > 멘토씨리즈 자바' 카테고리의 다른 글
[멘토씨리즈 자바] 08 메서드 응용문제 (1) | 2024.07.21 |
---|---|
[멘토씨리즈 자바] 07 클래스 응용문제 (0) | 2024.07.21 |
[멘토씨리즈 자바] 05 - 제어문-2 - 응용문제 (0) | 2024.07.18 |
[멘토씨리즈 자바] 04 - 제어문 - 1 응용문제 (0) | 2024.07.18 |
[멘토씨리즈 자바] 03 - 연산자 응용문제 (0) | 2024.07.17 |