병든 나이트 C++ - 백준 1783

김관중·2024년 2월 20일
0

백준

목록 보기
53/129

https://www.acmicpc.net/problem/1783

그리디 문제.

문제 접근

나이트가 최대한 많은 곳을 방문해야 하기 때문에,

우측으로 한칸 씩만 이동해야 한다.

근데 n과 m의 조합에 따라 움직일 수 없는 경우가 있기 때문에,

사실상 많은 조건 분기 문제였다......

코드는 다음과 같다.

#include <bits/stdc++.h>
using namespace std;

void solve(){
	int n,m;
	cin >> n >> m;
	if(m>=5){
		if(n==1) cout << 1;
		else if(n==2){
			if(m<=2) cout << 1;
			else if(m<=4) cout << 2;
			else if(m<=6) cout << 3;
			else cout << 4;
		}
		else if(m<=6) cout << 4;
		else cout << m-2;
	}
	else{
		if(n==1) cout << 1;
		else if(n==2){
			if(m==3 || m==4) cout << 2;
			else cout << 1;
		} 
		else cout << m;
	}
}

int main(){
	solve();
}
profile
꾸준히 학습하기

0개의 댓글

관련 채용 정보