-
[백준/BOJ] 16431번 : 벤시와 데이지 (JAVA / 자바)백준 2022. 1. 28. 00:52
안녕하세요~ 코딩하는 코알못 코메인입니다.
https://www.acmicpc.net/problem/16431
- 문제 -
난이도 브론즈 4 문제이다.
자바에서 입력방식은 scanner와 bufferedreader가 있다.
자바를 초반에 접하면 처음에 배우는 입력은 scanner이다. scanner가 bufferedreader보다 편하지만 속도가 느리다.
bufferedreader는 무조건 문자열로 받아오기때문에 정수형이나 실수형 변수에 저장하기 위해서는 입력과 형변환을 해줘야한다.
더 자세한 내용은 아래 글 참고 하면 좋다.
풀이 방법
베시는 대각선으로도 이동한다. 대각선으로 이동하게 되면 x와 y좌표는 동시에 1씩 줄어들 것이고, x 또는 y좌표가 존의 좌표와 같아진다면 일직선으로 이동하기때문에 x또는 y로 한칸씩 이동할 것이다. 그렇다면 베시가 이동할 거리는 존의 좌표와 베시 좌표를 x끼리 y 끼리의 차이 중 더 큰 수가 이동 한 값이 된다.
데이지는 좌우 아래로만 움직인다. 그렇다면 존의 x와 y 그리고 데이지와 x와 y 간의 차이의 합이 데이지의 이동 한 값이 된다. 그중 적게 움직인 소의 이름을 출력한다. 같다면 tie를 출력.
이동한 거리는 그냥 빼면 음수가 나올 수 있으니 Math.abs로 절대 값으로 만들어준다. 큰 수 비교는 숫자가 두개이기 때문에 Math.max로 한다.
-풀이-
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //베시 데이지 존의 위치값을 저장한다. StringTokenizer st = new StringTokenizer(br.readLine()); int Bx = Integer.parseInt(st.nextToken()); int By = Integer.parseInt(st.nextToken()); st = new StringTokenizer(br.readLine()); int Dx = Integer.parseInt(st.nextToken()); int Dy = Integer.parseInt(st.nextToken()); st = new StringTokenizer(br.readLine()); int Jx = Integer.parseInt(st.nextToken()); int Jy = Integer.parseInt(st.nextToken()); //베시와 데이지의 움직임 값을 저장한다. 큰 수는 Math.max로 절대값은 Math.abs로 int Bmove = Math.max((Math.abs(Bx - Jx)), (Math.abs(By - Jy))); int Dmove = Math.abs(Dx - Jx) + Math.abs(Dy - Jy); if(Bmove < Dmove) { System.out.println("bessie"); }else if(Bmove > Dmove) { System.out.println("daisy"); }else { System.out.println("tie"); } } }
-결과-
아직 코딩 공부가 부족한 필자라 설명과 풀이 방법이 많이 미흡할 수 있다. 코딩 고수들은 보시고 문제점이 있다면 댓글로 말해주시면 감사한 마음으로 참고 수정 하겠다.
'백준' 카테고리의 다른 글
[백준/BOJ] 17362번 : 수학은 체육과목입니다 2 (JAVA / 자바) (0) 2022.01.28 [백준/BOJ] 16486번 : 운동장 한 바퀴 (JAVA / 자바) (0) 2022.01.28 [백준/BOJ] 16204번 : 카드 뽑기 (JAVA / 자바) (0) 2022.01.28 [백준/BOJ] 16199번 : 나이 계산하기 (JAVA / 자바) (0) 2022.01.27 [백준/BOJ] 14264번 : 정육각형과 삼각형 (JAVA / 자바) (2) 2022.01.27