[JAVA] 배열 회전 출력
6143 단어 Java데이터 구조 와 알고리즘
import java.util.ArrayList;
import java.util.Scanner;
/*
* , , n*n,n 。
*/
public class rotateOrder {
public ArrayList getORder(int[][] array,int n){
ArrayList result=new ArrayList();
//int startX=n/2,startY=n/2;
//int endX=n-1,endY=n-1;
int i=n/2,j=n/2;
int flag=1;
int temp=n*n;
while(true){
for(j=n/2-(flag-1);j<=n/2+flag-1;j++)//
{
result.add(array[n/2-flag+1][j]);
temp--;
if(temp==0) break;
}
if(temp==0) break;
for(i=n/2-(flag-1);i<=n/2+flag-1;i++)//
{
result.add(array[i][n/2+flag]);
temp--;
if(temp==0) break;
}
if(temp==0) break;
for(j=n/2+flag;j>=n/2-flag+1;j--)//
{
result.add(array[n/2+flag][j]);
temp--;
if(temp==0) break;
}
if(temp==0) break;
for(i=n/2+flag;i>=n/2-flag+1;i--)//
{
result.add(array[i][n/2-flag]);
temp--;
if(temp==0) break;
}
if(temp==0) break;
flag++;
}
return result;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int a,b;
Scanner sc=new Scanner(System.in);
//a=sc.nextInt();
//b=sc.nextInt();
//System.out.println(a+""+b);
int n=sc.nextInt();
int[][] array=new int[n][n];
for(int i=0;ifor(int j=0;jif(sc.hasNextInt())
array[i][j]=sc.nextInt();
}
ArrayList al=new ArrayList();
rotateOrder ar=new rotateOrder();
al=ar.getORder(array, n);
System.out.println(al.toString());
}
}
> :
5
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
> :
[13, 14, 19, 18, 17, 12, 7, 8, 9, 10, 15, 20, 25, 24, 23, 22, 21, 16, 11, 6, 1, 2, 3, 4, 5]
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.