ascode 1162 어디로 간 것일까?
문제 설명
외딴 농가에서 양을 키우며 살고 있는 승민이. 어느 날 승민이의 가혹한 훈련을 견디지 못하고 결국 양 한 마리가 도망치고 말았다. 양 한 마리가 매우 아쉬운 승민이는 동네에서 가장 유명한 점장이에게 부탁해서 도망친 양의 위치를 알아낼 수 있는 힌트를 받게 되었다. 이 힌트가 적혀 있는 쪽지를 보니 너무 복잡해서 승민이는 도저히 이것으로 양을 찾을 수가 없었다. 승민이를 도와 양을 찾기 위한 프로그램을 작성해보자.
입력 설명
첫 줄에는 테스트케이스 T가 입력된다. (1 ≤ T ≤ 10) 각 테스트케이스에 대해서 첫 줄에 승민이의 집 위치가 (x, y)좌표로 입력된다. (-200 <= x, y <= 200) 다음 줄에는 승민이의 집을 기준으로 양의 위치가 어디인지를 알려줄 문자열이 입력된다. (문자열의 길이는 1이상 80이하이다.) 입력되는 문자열는 양이 이동한 8 방향을 나타내는 숫자(1 ~ 8)로만 이루어진다. 각 숫자의 의미는 다음과 같다.
1: 위쪽(y 좌표 하나 증가)
2: 오른쪽위(x 좌표 하나 증가, y 좌표 하나 증가)
3: 오른쪽(x 좌표 하나 증가)
4: 오른쪽아래(x 좌표 하나 증가, y 좌표 하나 감소)
5: 아래쪽(y 좌표가 하나 감소)
6: 왼쪽아래(x 좌표 하나 감소, y 좌표 하나 감소)
7: 왼쪽(x 좌표 하나 감소)
8: 왼쪽위(x 좌표 하나 감소, y 좌표 하나 증가). (아래 그림 참조)
출력 설명
각 테스트 케이스 별로 양이 위치하고 있을 좌표(x, y)를 한 줄에 하나씩 출력한다. x 값과 y 값 사이에는 공백을 하나만 두도록 한다.
입력 예시
2
-3 5
183726372
0 0
83726474837263718
출력 예시
-3 8
-2 2
코드
#include <stdio.h>
#include <string.h>
int main() {
int a;
int b = 0, c = 0;
char x[200];
scanf("%d", &a);
for (int i = 0; i < a; i++)
{
scanf("%d %d", &b, &c);
scanf("%s", &x);
for (int i = 0; i < strlen(x); i++)
{
if (x[i] == '1') {
c++;
}
else if (x[i] == '2') {
b++;
c++;
}
else if (x[i] == '3') {
b++;
}
else if (x[i] == '4') {
b++;
c--;
}
else if (x[i] == '5') {
c--;
}
else if (x[i] == '6') {
b--;
c--;
}
else if (x[i] == '7') {
b--;
}
else if (x[i] == '8') {
b--;
c++;
}
}
printf("%d %d\n", b, c);
}
return 0;
}
나 : say
대체 어디로 간걸까?
댓글남기기