다음과 같은 n*m 배열 구조를 출력해보자.
입력이 3 4인 경우 다음과 같이 출력한다.
12 11 10 9
5 6 7 8
4 3 2 1
입력이 4 5인 경우는 다음과 같이 출력한다.
16 17 18 19 20
15 14 13 12 11
6 7 8 9 10
5 4 3 2 1
입력이 n m인 경우의 2차원 배열을 출력해보자.
반응형
https://codeup.kr/problem.php?id=1472
문제 분류 : 기초5-3. 2차원 배열
문제 설명
입력
첫 번째 줄에 배열의 크기 n m이 입력된다.
[입력값의 정의역]
1<= n,m <= 100
출력
n*m 크기의 배열을 설명과 같이 채워 출력한다.
입력 예시
2 3
출력 예시
4 5 6
3 2 1
도움말
내 답안
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String StrArr[] = br.readLine().split(" ");
int n = Integer.parseInt(StrArr[0]);
int m = Integer.parseInt(StrArr[1]);
int [][] arr = new int [n][m];
for(int i = 0; i < n; i++) {
for(int j = 0; j < m; j++) {
if(n%2==0) {
if(i%2==0) {
arr[i][j] = (n-i)*(m)+(j+1-m);
}else if(i%2!=0) {
arr[i][j] = (n-i)*(m)-(j);
}
bw.write(String.valueOf(arr[i][j]+" "));
}else if(n%2!=0) {
if(i%2==0) {
arr[i][j] = (n-i)*(m)-(j);
}else if(i%2!=0) {
arr[i][j] = (n-i-1)*(m)+(j+1);
}
bw.write(String.valueOf(arr[i][j]+" "));
}
}
bw.write("\n");
}
bw.flush();
bw.close();
br.close();
}
}
반응형
'알고리즘 > [코드업] 기초5-3. 2차원 배열' 카테고리의 다른 글
[JAVA] CodeUp 1471 : [기초-배열연습] 2차원 배열 지그재그 채우기 2-4 (0) | 2021.08.24 |
---|---|
[JAVA] CodeUp 1470 : [기초-배열연습] 2차원 배열 지그재그 채우기 2-3 (0) | 2021.08.24 |
[JAVA] CodeUp 1469 : [기초-배열연습] 2차원 배열 지그재그 채우기 2-2 (0) | 2021.08.24 |
[JAVA] CodeUp 1468 : [기초-배열연습] 2차원 배열 지그재그 채우기 2-1 (0) | 2021.08.24 |
[JAVA] CodeUp 1467 : [기초-배열연습] 2차원 배열 순서대로 채우기 1-8 (0) | 2021.08.24 |