ascode 1128 追羊
문제 설명
외딴 섬에서 양을 키우며 살고 있는 농부 예준. 어느 날 예준의 가혹한 훈련을 견디지 못하고 결국 양 한 마리가 도망치고 말았다. 양 한 마리가 매우 아쉬운 예준이는 이웃에 살고 있는 양잡이의 달인 지윤에게 양의 위치를 알아내 달라고 부탁하였다. 그런데 예준이는 지윤에게 넘겨 받은 도망친 양의 위치를 나타내는 내용이 너무 복잡하여 이해할 수가 없었다. 예준이를 도와 양의 위치를 알아낼 수 있는 프로그램을 작성해 보자. 그런데 지역이 외딴 섬이다 보니 양이 도망 갈 수 있는 위치가 섬 지역 안쪽으로 한정되어 있는데, 간혹 양잡이의 달인 지윤은 이것을 생각하지 못하고 잘못된 내용을 주기도 하여 이를 조심하여야 한다.
입력 설명
첫 줄에는 테스트케이스 T가 입력된다. (1 ≤ T ≤ 20)
각 테스트케이스에 대해서 첫 줄에 예준의 집 위치가 (x, y)좌표로 입력된다. ( -10 ≤ x, y ≤ 10) 다음 줄에는 예준의 집을 기준으로 양의 위치가 어디인지를 알려줄 문자열이 입력된다. 입력되는 문자열은 모두 대문자이다. (문자열의 길이는 1이상 100이하이다.) 입력되는 문자의 의미는 다음과 같다. L: 왼쪽( x 좌표가 하나 감소) R: 오른쪽( x 좌표가 하나 증가) U: 위쪽( y 좌표가 하나 증가) D: 아래쪽( y 좌표가 하나 감소)
예준이가 살고 있는 섬의 정중앙 좌표가 0, 0이며 이 섬에서 이동 가능한 x 좌표는 -30에서 30, y 좌표는 -60에서 60까지이다. 혹시라도 이 범위를 벗어나는 경우가 발생하면 지윤이가 데이터를 잘못 만든 것이다.
출력 설명
각 테스트케이스별로 양의 위치를 한 줄에 하나씩 출력한다. 만약 양의 위치가 한 순간이라도 섬에서 이동 가능한 좌표가 아니라면 invalid 라고 출력한다.
입력 예시
2
-3 5
LRUURRDLDRDUL
10 10
LLRRRRRRRRRRRRRRRRRRRRRRR
출력 예시
-2 5
invalid
코드
#include <stdio.h>
#include <string.h>
int main() {
int a,result = 0;
int x, y;
char arr[101];
scanf("%d", &a);
for (int i = 0; i < a; i++)
{
scanf("%d %d", &x, &y);
scanf("%s", &arr);
for (int i = 0; i < strlen(arr); i++)
{
switch (arr[i])
{
case 'L':
x--;
break;
case 'R':
x++;
break;
case 'U':
y++;
break;
case 'D':
y--;
break;
default:
break;
}
if (-30 > x || x > 30 || -60 > y || y > 60) {
result++;
printf("invalid\n");
break;
}
}
if (result != 1) {
printf("%d %d\n", x, y);
}
result = 0;
}
return 0;
}
나 : say
꼭꼬꼮ㄲㄲ고갸ㅐㅣ로ㅜ미ㅏㄴ암너ㅏㅣㅇㅁ너ㅣㅏㅇㅁㄴ
꼭 문제설명을 보고 코드를 몇번이나 다시보자
댓글남기기