2016. 09 .04. Sun. 정보처리산업기사 실기 알고리즘
배열 9 달팽이 만들기
알고리즘에서는 규칙을 찾는 것이 첫 번째로 이루어져야 한다.
규칙
1회전: (1,1) (1,2) (1,3) (1,4) (1,5) (1,6) (1,7) ← 행 고정, 열 증가 - 7번 수행 (증가)
2회전: (2,7) (3,7) (4,7) (5,7) (6,7) (7,7) ← 행 증가, 열 고정 - 6번 수행 (증가)
3회전: (7,6) (7,5) (7,4) (7,3) (7,2) (7,1) ← 행 증가, 열 감소 - 6번 수행 (감소)
4회전: (6,1) (5,1) (4,1) (3,1) (2,1) ← 행 감소, 열 고정 - 5번 수행 (감소)
.
.
.
위의 규칙을 아래의 예제로 입력한다.
package example;
class ArrayExam{
int n = 7;
int row,col;
public void snail(){
int array[][] = new int [n][n];
System.out.println("\n배열9 달팽이 만들기");
int f = n; //수행횟수
int c = 1; //증가와 감소를 구분할 변수
int num = 1; //1부터 n까지 입력될 변수
int i=0; //행의 위치 변수
int J=-1; //열의 위치 변수
do{
for(int N=0; N<f; N++){
J=J+c;
array[i][J] = num; num++;
}
f=f-1; //수행 횟수 감소
if(f>0){ //수행 횟수 판별
for(int N=0; N<f; N++){
i=i+c;
array[i][J] = num; num++;
}
c = c*-1; //증가와 감소를 스위치
}else{ //수행 횟수가 0이되면 알고리즘 종료
break;
}
}while(true);
for(int row=0; row<n; row++){
for(int col=0; col<n; col++){
System.out.printf("%3d",array[row][col]);
}
System.out.println();
}
}
}//class
public class AlgorismArray {
public static void main(String[] args) {
ArrayExam e = new ArrayExam();
e.snail();
}//main
}//class
'IT story > Algorism' 카테고리의 다른 글
배열11 마방진(magic square) (0) | 2016.09.04 |
---|---|
배열10 대각선으로 채우기 (0) | 2016.09.04 |
배열8 90도 회전하기 (0) | 2016.09.04 |
배열7 이등변 삼각형 만들기 (0) | 2016.09.04 |
배열6 오른쪽에 빈 삼각형 만들기 (0) | 2016.09.04 |