일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- https://goodgid.github.io/HTTP-Communicate-Process/
- https://appmaster.io/ko/blog/rest-apiran-mueosimyeo-dareun-yuhyeonggwa-eoddeohge-dareungayo
- https://hi-zini.tistory.com/entry/%EB%B9%84%EB%8F%99%EA%B8%B0%EC%A0%81-%EB%B0%A9%EC%8B%9D-%EC%B2%98%EB%A6%AC-%EB%B0%A9%EB%B2%95-Callback-Promise-async-await
- https://sewonzzang.tistory.com/22
- https://jcon.tistory.com/189
- https://joshua1988.github.io/web-development/javascript/promise-for-beginners/
- https://siyoon210.tistory.com/130
- https://aws.amazon.com/ko/docker/
- https://subicura.com/2017/01/19/docker-guide-for-beginners-1.html
- https://joshua1988.github.io/web-development/javascript/js-async-await/
- Today
- Total
“Connecting the dots”
Java Study 배열 180도 돌리기 / 배열좌우바꾸기 본문
2023/4월12일수
Main
package mymain;
import myutil.MyArrayChange;
import myutil.MyArrays2;
public class MyMain_배열22222_변환 {
public static void main(String[] args) {
int [][] src =new int[5][5];
MyArrays2.set(src);
System.out.println("---[원본]---");
MyArrays2.display_array(src);
//오른쪽 90도 회전시키기
int [][] dest = MyArrayChange.rotate_right_90(src);
System.out.println("---[Rotage Right 90]---");
MyArrays2.display_array(dest);
//좌우 뒤집기
dest = MyArrayChange.flip_left_right(src);
System.out.println("---[Flip Left-Right]---");
MyArrays2.display_array(dest);
//180도 회전시키기
dest = MyArrayChange.rotate_180(src);
System.out.println("---[Rotate 180]---");
MyArrays2.display_array(dest);
}
}
Util
package myutil;
public class MyArrayChange {
//오른쪽 90도 회전시키기
public static int[][] rotate_right_90(int [][] src) {
rotate_right_90 메소드는 2차원 정수형 배열 src를 오른쪽으로 90도 회전시키는 메소드이다
int rows =src.length;//행수
int cols =src[0].length;//열의갯수
src 배열의 행 수와 열의 갯수글 rows 와 cols 변수에 저장
//원본배열과 동일하 크기의 사본배열을 생성
int [][] dest= new int[rows][cols];
src 와 동일한 크기의 사본 배열 dest 를 생성 하고 dest 배열의 행 수는 src 배열의 열수와 같고 열의 수는 src 배열의 행 수와 같다 이렇게 하는 이유는 src 배열을 오른쪽으로 90도 회전시키면 행과 열이 바뀌기 떄문이다
//원본배열->사본배열로 옮기기
for(int i=0; i<rows;i++) {//행점자
for(int k=0; k<cols; k++) {//열첨자
dest[i][k]= src[i][k];
}
}
먼저 for문에서 i 는 현재 처리 할 행의 인덱스를 나타냅니다 k는 현재 처리 할 열의 인덱스
dest[i][cols -k -1] = src[i][k] 구문은 현재 src 배열의 i 번쨰 행 k 번쨰 열의 값을,새로운 dest 배열에서 몇번째 행과
열에 넣을지 계산
오른쪽 90도 회전에서는 원래 배열의 마지막 열이 새로운 배열의 첮번째 항 두번째열이 두번째 형 이 된다
따라서 cols-k-1을 통해현재 열의 위치를 역순으로 바꾸어 새로운 배열에서 해당위치에 값을 할당
return dest;
}
//좌우뒤집기
public static int[][] flip_left_right(int[][] src) {
flip_left_right 메소드는 2차원 정수형 배열 src를 좌우로 바꾸기 메소드이다
int rows = src.length; // 행 수
int cols = src[0].length; // 열의 갯수
src 배열의 행 수와 열의 갯수글 rows 와 cols 변수에 저장
// 원본 배열과 동일 크기의 사본 배열을 생성
int[][] dest = new int[rows][cols];
// 원본 배열 -> 사본 배열로 옮기기
for (int i = 0; i < rows; i++) { // 행 점자
for (int k = 0; k < cols; k++) { // 열 점자
dest[i][cols -k - 1] = src[i][k];
}
}
return dest;
}
//가로 세로
//컬럼 로우
//180도 돌리기
public static int[][] rotate_180(int[][] src) {
rotate_180 메소드는 2차원 정수형 배열 src를 180도 뒤집기 메소드이다
int rows = src.length; // 행 수
int cols = src[0].length; // 열의 갯수
src 배열의 행 수와 열의 갯수글 rows 와 cols 변수에 저장
// 원본 배열과 동일 크기의 사본 배열을 생성
int[][] dest = new int[rows][cols];
// 원본 배열 -> 사본 배열로 옮기기
for (int i = 0; i < rows; i++) { // 행 점자
for (int k = 0; k < cols; k++) { // 열 점자
dest[rows - i - 1][cols - k - 1] = src[i][k];
}
}
return dest;
}
}
'JAVA' 카테고리의 다른 글
JAVA STUDY 상속 추상화 인터페이스 (0) | 2023.04.20 |
---|---|
JAVA Study 달력 알고리즘 문제 (0) | 2023.04.14 |
JAVA 2차원배열 (0) | 2023.04.12 |
JAVAStuDY Stack Heap (0) | 2023.04.11 |
JAVA 배열 (0) | 2023.04.11 |