Priceless

[백준] 1783번: 병든 나이트 (C++) 본문

Algorithm & Test/백준

[백준] 1783번: 병든 나이트 (C++)

Hyun__ 2023. 8. 18. 23:21

 

체스에서 나이트의 움직임을 오른쪽으로만 움직였을 때 입력 받은 체스판에서 최대한의 이동하는 칸의 수를 구하는 문제다

체스판이 작을 때 이동 횟수에 대한 제한 있기 때문에

그 부분에 대해서 하나씩 조건을 걸어야 한다

 

체스판이 커지면 최대로 갈 수 있는 칸을 세기 위해 계산한다

자세한 계산 수는 코드를 참고한다

 

 

 

// baekjoon 1783

#include<iostream>
#include<algorithm>
#include<string>

using namespace std;

// codes for fast I/O
void init(){
    cin.tie(0);
    cout.tie(0);
    ios_base::sync_with_stdio(false);
}


int main(){
    init();
    
    int n, m;
    cin >> n >> m;
    
    if(n == 1){
        cout<< 1;
        return 0;
    }
    
    else if(n == 2){
        cout << min(4, (m - 1) / 2 + 1);
    }
    else if (m < 7)
        cout << min(4, m);
    
    else{
        cout << (2 + (m - 5)) + 1;
    }
}