[알고리즘3] 상하좌우 찾기 문제 풀기
by 뱁새유니버스2차원 배열이 주어졌을 때 특정 행렬 값을 제시하면 상하좌우 값을 구하는 알고리즘을 만들었습니다.
package algorithm;
import java.util.Scanner;
public class Main {
static Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
int arr[][] = {
{ 1, 2, 3, 4 },
{ 5, 5, 7, 6 },
{ 1, 2, 8, 9 }
};
System.out.print("행 좌표를 입력하세요: ");
int row = sc.nextInt();
System.out.print("열 좌표를 입력하세요: ");
int col = sc.nextInt();
// 상하좌우 좌표의 변화량
int[] dr = { -1, 1, 0, 0 };
int[] dc = { 0, 0, -1, 1 };
// 상하좌우 값들을 출력
for (int i = 0; i < 4; i++) {
int newRow = row + dr[i];
int newCol = col + dc[i];
if (newRow < 0 || newCol < 0 || newRow >= 3 || newCol >= 4)
continue;
//인덱스가 배열의 범위 내에 있는지 확인
if (newRow >= 0 && newRow < arr.length && newCol >= 0 && newCol < arr[0].length) {
System.out.println("Direction " + i + ": " + arr[newRow][newCol]);
} else {
System.out.println("오류!!");
}
}
}
}
상하좌우의 변화량을 dr과 dc 라는 배열을 통해 정하니 그것을 기반으로 상하좌우 값들을 출력할 수 있었습니다.
단순 사고로는 생각하기 어려운 것 같아요. 프로그래밍적 사고가 필요하다고 느꼈습니다.
행열 좌표 값을 입력해보면 아래와 같이 상하좌우 값이 순서대로 나오는 것을 확인할 수 있었습니다.
질문이 있으시면 언제든지 댓글남겨주세요~! 감사합니다.
반응형
'IT' 카테고리의 다른 글
자바 이클립스 디버깅 단축키 (0) | 2023.09.19 |
---|---|
[알고리즘4] 2차원배열 주어진 좌표를 포함한 상하좌우 합이 최대인 좌표 찾기 문제 (0) | 2023.09.18 |
[알고리즘2] 주어진 배열의 짝수 세기 (0) | 2023.09.18 |
[알고리즘1]Java Eclipse IDE 알고리즘 구조 공부를 위한 기본 환경 설정 (0) | 2023.09.18 |
네트워크 포트 PID 서비스 작업관리자 죽이는 법 taskkill how to kill port (0) | 2023.02.27 |
블로그의 정보
가슴이 웅장해지는 모든것
뱁새유니버스