goal
Java로 구현한 달팽이 알고리즘을 이해한다.
1 ] 달팽이 알고리즘
1. 문제설명
사용자가 입력값 n을 입력했을 때, n * n의 배열을 위와 같은 규칙으로 출력하는 문제
2. 알고리즘 순서도 및 코드풀이
<첫 번째 풀이>
- 알고리즘 순서도
- 코드풀이
package algorithm;
import java.util.Scanner;
public class TwoArraySpiral {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.printf("숫자를 입력하세요 : ");
int size = sc.nextInt();
int[][] arr = new int[size+1][size+1]; // 2차원배열
int sw = 1; // 스위치변수
int i = 1; int j = 0; // 배열의 위치
int count = 0; // 증감변수
while (true) {
for (int p = 1; p <= size; p++) {
count += 1;
j += sw;
arr[i][j] = count;
}
size = size - 1;
if (size > 0) {
for (int p = 1; p <= size; p++) {
count += 1;
i += sw;
arr[i][j] = count;
}
sw = sw * -1;
} else {
break; // 기저조건
}
}
for(int n = 1; n < arr.length; n++) {
for(int m = 1; m < arr[n].length; m++) {
System.out.print(arr[n][m] + "\t");
}
System.out.println();
}
}
}
'Algorithm > java 구현' 카테고리의 다른 글
자료구조 (java) :) LinkedList 구현하기 (0) | 2022.03.31 |
---|---|
자료구조 (java) :) 삽입정렬... 입력받은 값을 버블정렬로 출력하기 (0) | 2022.03.28 |
자료구조 (java) :) 버블정렬... 입력받은 값을 버블정렬로 출력하기 (0) | 2022.03.28 |
자료구조 (java) :) 선택정렬.. 입력받은 값을 선택정렬로 정리하기 (0) | 2022.03.28 |