코딩테스트/구름

구름 LEVEL C++ 1LV 인공지능 청소기

sky하연 2024. 3. 14. 22:31

문제 정의

[0,0]에서 지정한 좌표까지 지정한 초 안에 갈 수 있을까?

2차원 정수 좌표계로 표시, 한칸 이동할때 마다 1초씩 소모

 


구분별 문제 풀이

각 좌표를 배열로 저장한 후 값을 양의 정수로 저장

 for(int i = 0; i < T; i++){
		 cin >> X[i] >> Y[i] >> N[i];
		 X[i] = abs(X[i]);
		 Y[i] = abs(Y[i]);
	 }

 

최소 이동거리 구하기

최소 이동거리는 그냥 표 형식이기 때문에 가로 칸 갯수 + 세로 칸 갯수

for(int i = 0; i < T; i++){
		min_Distance[i] = X[i] + Y[i];
	}

만약 입력한 N값이 최소 거리보다 작으면 NO 출력

크다면

최소거리가 짝수인데 N 값이 짝수 라면 YES 출력

아니면 NO 출력

최소거리가 홀수 인데 N 값이 홀수 라면 YES 출력

아니면 NO 출력

for(int i = 0; i < T; i++){
	if (N[i] < min_Distance[i]) cout<<"NO"<<"\n";
		
	else if(min_Distance[i] % 2 == 0){
			if(N[i] % 2 == 0) cout<<"YES"<<"\n";
			else cout<<"NO"<<"\n";
			}else{
			if(N[i] % 2 == 1) cout<<"YES"<<"\n";
			else cout<<"NO"<<"\n";
		}
	}

 


전체코드

#include <iostream>
#include <cmath>
using namespace std;
int main() {
	int T;
	cin >> T;
	int X[T], Y[T], N[T];
	
	int min_Distance[T];
	 for(int i = 0; i < T; i++){
		 cin >> X[i] >> Y[i] >> N[i];
		 X[i] = abs(X[i]);
		 Y[i] = abs(Y[i]);
	 }
	
	for(int i = 0; i < T; i++){
		min_Distance[i] = X[i] + Y[i];
	}
	
	for(int i = 0; i < T; i++){
	if (N[i] < min_Distance[i]) cout<<"NO"<<"\n";
		
	else if(min_Distance[i] % 2 == 0){
			if(N[i] % 2 == 0) cout<<"YES"<<"\n";
			else cout<<"NO"<<"\n";
			}else{
			if(N[i] % 2 == 1) cout<<"YES"<<"\n";
			else cout<<"NO"<<"\n";
		}
	}
	return 0;
}

 

 

'코딩테스트 > 구름' 카테고리의 다른 글

구름 Level C++ 1LV 가위바위보  (0) 2024.03.14