ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 1-2: offset
    Basic 2018. 10. 24. 19:26

    offset (offset.cpp)

     

    문제


    5x5 2차원 배열이 주어질 때 어떤 원소가 상하좌우에 있는 원소보다 작을 때 해당 위치에 * 을 표시하는 프로그램을 작성하시오. 경계선에 있는 수는 상하좌우 중 존재하는 원소만을 비교한다.

     

    입력


    5x5 행렬의 정보가 25 개의 수로 주어진다. 각 수는 0 에서 9 사이 수이다.

     

    출력


    *를 포함한 행렬을 출력예의 형식으로 출력한다.

     

    예제 입력

    3 4 1 4 9
    2 9 4 5 8
    9 0 8 2 1
    7 0 2 8 4
    2 7 2 1 4

    예제 출력

    3 4 * 4 9 
    * 9 4 5 8 
    9 0 8 2 * 
    7 0 2 8 4 
    * 7 2 * 4 

     import java.util.Scanner;


    public class Offset {

    /**
    * 5x5 2차원 배열이 주어질 때 어떤 원소가 상하좌우에 있는 원소보다 작을 때 해당 위치에 * 을 표시하는 프로그램을 작성하시오. 경계선에 있는 수는 상하좌우 중 존재하는 원소만을 비교한다.
    * 5x5 행렬의 정보가 25 개의 수로 주어진다. 각 수는 0 에서 9 사이 수이다.
    *
    * *를 포함한 행렬을 출력예의 형식으로 출력한다.
    *
    * 3 4 1 4 9
    * 2 9 4 5 8
    * 9 0 8 2 1
    * 7 0 2 8 4
    * 2 7 2 1 4
    *
    * 3 4 * 4 9
    * * 9 4 5 8
    * 9 0 8 2 *
    * 7 0 2 8 4
    * * 7 2 * 4
    * @param args
    */
    public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);

    int arr[][] = new int[5][5];
    String result[][] = new String[5][5];

    //read in arr
    for (int i=0; i< 5; i++){
    for (int j=0; j<5; j++){
    arr[i][j] = sc.nextInt();
    }
    }

    //transform into result
    for (int i=0; i< 5; i++){
    for (int j=0; j<5; j++){
    if (isLessThanNeighbors(arr,i,j)){
    result[i][j] = "*";
    } else {
    result[i][j] = String.valueOf(arr[i][j]);
    }
    }
    }

    //print result
    for (int i=0; i< 5; i++){
    for (int j=0; j<5; j++){
    System.out.print(result[i][j] +" ");
    }
    System.out.println();
    }

    }

    private static boolean isLessThanNeighbors(int[][] arr, int i, int j) {
    int row = i;
    int col= j;

    //top
    if (row > 0){
    if (arr[row][col] >= arr[row-1][col]) {
    return false;
    }
    }
    //bot
    if (row < arr.length-1){
    if (arr[row][col] >= arr[row+1][col]) {
    return false;
    }
    }

    //right
    if (col < arr[0].length-1){
    if (arr[row][col] >= arr[row][col+1]) {
    return false;
    }
    }

    //left
    if (col >0){
    if (arr[row][col] >= arr[row][col-1]) {
    return false;
    }
    }

    return true;
    }
    }


    'Basic' 카테고리의 다른 글

    1-6: 영팔이  (0) 2018.10.24
    1-5: 자리배정  (0) 2018.10.24
    1-4: 테트리미노  (0) 2018.10.24
    1-3: 숫자야구  (0) 2018.10.24
    1-1: 10부제  (0) 2018.10.24
Designed by Tistory.