-
이번에는 BOJ의 16948번 문제 "데스나이트" 를 풀어보도록 하자
입력으로 첫째 줄에 체스판의 크기가 주어지고 다음 줄에 r1, c1, r2, c2 가 주어진다.
출력으로 첫째 줄에 데스 나이트가 r1,c1 에서 r2, c2 로 이동하는 최소 이동 횟수를 출력하면 되는 문제이다. 이동할 수 없다면 -1 을 출력하면 된다.
성공한 코드는 아래와 같다.
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)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); int N = Integer.parseInt(br.readLine()); StringTokenizer st = new StringTokenizer(br.readLine()); int r1 = Integer.parseInt(st.nextToken()); int c1 = Integer.parseInt(st.nextToken()); int r2 = Integer.parseInt(st.nextToken()); int c2 = Integer.parseInt(st.nextToken()); int r = Math.abs(r1 - r2); int c = Math.abs(c1 - c2); int cnt = 0; if(r % 2 == 1){ cnt = -1; } else { int n = r / 2; for(int i = 0; i < n; i++){ c = Math.abs(c - 1); } cnt += n; if(c % 2 == 1){ cnt = -1; } else { n = c / 2; cnt += n; } } bw.write(cnt + "\n"); bw.flush(); br.close(); bw.close(); } }
문제 : https://www.acmicpc.net/problem/16948
혹시 코드에 이상한 부분이나 틀린 부분이 있던지, 이해가 안가는 부분이 있다면 댓글로 알려주세요
'Algorithm > BOJ(Baekjoon Online Judge)' 카테고리의 다른 글
[백준 - 1284번] 집 주소 - Java //Wello Horld // (0) 2020.03.06 [백준 - 2774번] 아름다운 수 - Java //Wello Horld// (0) 2020.03.05 [백준 - 9507번] Generations of Tribbles - Java //Wello Horld// (0) 2020.03.04 [백준 - 10807번] 개수 세기 - Java //Wello Horld// (0) 2020.03.02 [백준 - 2960번] 에라토스테네스의 체 - Java //Wello Horld// (0) 2020.03.02