백준 20057 - 병든 나이트

Updated:

Java

1783 번 - 병든 나이트

문제

접근 방법

병든 나이트는 x축 기준 뒤로 갈 수 없다.
따라서, y축은 최소 3칸 이상 커져야 하므로
y축의 크기가 1일때 2일때 로 분기 처리를 한다.

문제 조건 상, 나이트의 4가지 방향을 전부 다 이동 하려면 x축으로 7칸 이상 커야 한다.
다라서 x가 6이하일 때, 이상일때로 분기 처리한다.

코드

import java.util.*;
import java.io.*;

public class Main {
	static int n, m, result;

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    	StringTokenizer stk = new StringTokenizer(br.readLine());
    	n = stoi(stk.nextToken());
    	m = stoi(stk.nextToken());

    	// y가 1일때
    	if(n == 1) {
    		result = 1;
    	}
    	// y가 2일때
    	else if(n == 2) {
    		result = m / 2;
    		if(m % 2 == 1)
    			result++;

    		if(result >= 4)
    			result = 4;
    	}
    	// y가 3이상일 때
    	else {
    		// x가 7 이하 일 때
        	if(m <= 6) {
        		result = m;
        		if(result >= 4)
        			result = 4;
        	}
        	// 그 외
        	else {
        		result = m - 2;
        	}
    	}

    	System.out.println(result);
    	br.close();
	}

	static int stoi(String str) {
    	return Integer.parseInt(str);
    }
}

총평

후기

개선할 점