Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 게시판댓글
- api문서만들기
- git
- openaddressing
- 오라클오류
- 추상클래스
- 크리스탈레포트그림
- 자료구조
- 타임존
- 이미지누끼
- JDBC
- 스토리지기본
- fcmwebpush
- IT기본지식
- ResponseBody
- 서버기본
- RequestBody
- Ajax
- EC@
- jdbc연결안됨
- 크리스탈레포트이미지
- @RunWith
- 크리스탈레포트누끼
- 서블릿용어
- 타임존설정
- 크리스탈리포트이미지삽입
- 롬복
- lombok
- 크리스탈리포트이미지
- import안될때
Archives
- Today
- Total
엠마의 개발공부일지
배열 | 이차원배열 회전시키기 본문
728x90
▶주어진 2차원배열을 시계방향 90도로 회전시킨 결과를 출력하시오
▶Guide
- 그리려고하는 2차원배열의 형태를 머리속으로 그려놓고, 빈 2차원 배열을 만들어준다
- 기존배열을 읽어오는 2중 for문을 사용
- 한줄을 잡아서 어떤 인덱스로 변경되는지 파악해보고, 2중 for문안의 i, j 값을 활용하여 대입해주기
> 전체 배열길이 3과, 내부배열길이 5를 분리해서 생각하고
> 이중 for문을 그대로 만들어준다
> 이 안에서 쓰는 숫자는 i, j 뿐이다
> i, j 로 조합하여 만들어지는 숫자 (r) 하나만 계산하면 끝!
> 배열의 90도 회전으로인해 00자리에 있는숫자가, 02자리에 찍혀야 한다
> 여기까지는 i, j값만 잘 매칭하면 되서 수월하다
> 이과정에서 초보는 약간의 수고로움은 있을수밖에 없는것같다
> r 계산할때는 새로만들어질 배열을 머릿속으로 그려봐야 이해가잘된다
> 사용된 i, j, r을 새로운 이차원배열에 배치해서 대입해주면 끝!
> 확인을 위해 이차원배열로 출력해보기
public static void main(String[] args) {
int[][] arr = {{1, 2, 3, 4, 5}, {6, 7, 8, 9, 10}, {11, 12, 13, 14, 15}};
int[][] arr90 = new int[arr[0].length][arr.length];
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
int r = arr.length - 1 - i;
arr90[j][r] = arr[i][j];
}
}
for (int i = 0; i < arr90.length; i++) {
for (int j = 0; j < arr90[i].length; j++) {
System.out.print(arr90[i][j]);
}
System.out.println();
}
}
728x90
Comments