문제 정의
[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 |
---|