문제
입력된 수 n만큼 n행 n열의 형태로 아래와 같이 출력되는 숫자 사각형 출력
-> 4 입력
🥺 풀이 :
1번 문제가 까다로웠다. 그림까지 그려가며...풀어봣다.
1번을 풀고나니 뒤는 금방 풀수 있었다.
1번
public class 숫자사각형2 {
public static void main(String[] args) {
int n = 4;
int arr[][] = new int[n][n];
for(int i =0; i<n; i++) {
if(i % 2 ==0 ) { //짝수
for(int j =0; j<n; j++) {
arr[i][j] = i * n + j + 1;
}
}
else { //홀수
for(int j =n-1; j>=0; j--) {
arr[i][j] = i * n + n - j;
}
}
}
for(int i = 0; i<n; i++) {
for(int j =0; j<n; j++) {
System.out.printf("%4d",arr[i][j]);
}
System.out.println();
}
}
}
2차원 배열을 사용하였고,
1234 -- index[0]
8765 -- index[1]
둘이 다르게 쌓이는걸 생각해서 홀수 짝수로 나눠 만들었다.
2
public class 숫자사각형3 {
public static void main(String[] args) {
int n = 4;
int arr[][] = new int[n][n];
int num =1;
for(int i=0; i<n; i++) {
for(int j =0; j<n; j++) {
//arr[j][i] = num;
//num++;
arr[j][i] = i * n + j + 1;
}
}
for(int i=0; i<n; i++) {
for(int j = 0; j<n; j++) {
System.out.printf("%4d",arr[i][j]);
}
System.out.println();
}
}
}
두가지 방법이 있었다.
행과 열이 바뀐것으로 i와 j를 바꿔서 넣어줬다.
처음 푼 방법음 num이라는 변수를 따로 두어 1씩 증가시키는 것이였다.
두번째 방법은 1번문제의 짝수 인덱스 구하는 것과 같다.
3
public class 숫자사각형4 {
public static void main(String[] args) {
int n = 4;
int arr[][]= new int[n][n];
for(int i = 0; i<n; i++) {
for(int j =0; j< n; j++) {
arr[i][j] = (j + 1) *(i + 1) ;
}
}
for(int i = 0; i<n; i++) {
for(int j =0; j< n; j++) {
System.out.printf("%4d",arr[i][j]);
}
System.out.println();
}
}
}
'개발 > 알고리즘 기초' 카테고리의 다른 글
[알고리즘 기초] 별찍기 (1) | 2021.04.13 |
---|---|
[알고리즘 기초] 구구단1 (1) | 2021.04.07 |
[알고리즘 기초 ] 숫자 사각형 만들기 (0) | 2021.03.30 |
[ 알고리즘 기초 ] 팩토리얼 (0) | 2021.03.29 |
[알고리즘 기초] 피보나치 수열 (0) | 2021.03.27 |