개발자 톡

연습문제 톡 진정한 효도

java 정답 코드 공유 드립니다.

등록일
2024-10-22 11:40:10
조회수
122
작성자
kmg1123ck

곰곰히 생각해보니 오름차순 정렬 한뒤에 가운데 값을 기준으로 계산을 하면 되겠더라구요.ㅎ


import java.io.*;

import java.util.*;


public class Main {


  public static void main(String[] args) throws Exception {

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

     

    int[][] map = new int[3][3];


    StringTokenizer st;

    for(int i=0; i<3; i++) {

      st = new StringTokenizer(br.readLine());

      for(int j=0; j<3; j++){

        map[i][j] = Integer.parseInt(st.nextToken());

      }

    }


    int[][] farm = map.clone();

     

    int min = 999999999;

    int size = farm.length;


    for(int i =0; i < size; i++) {

      int[] x = farm[i];

      int[] y = new int[3];


      for(int j = 0; j < size; j++) {

        y[j] = farm[j][i];

      }


      Arrays.sort(x);

      Arrays.sort(y);


      int xCnt = Math.abs(x[1] - x[0]) + Math.abs(x[1] - x[2]);

      int yCnt = Math.abs(y[1] - y[0]) + Math.abs(y[1] - y[2]);


      min = min < xCnt && min < yCnt ? min : xCnt < yCnt ? xCnt : yCnt;

    }


    System.out.println(min);

  }

}


#진정한_효도

이 카테고리의 톡 더보기