ascode 1162 어디로 간 것일까?

1 분 소요

문제 설명

외딴 농가에서 양을 키우며 살고 있는 승민이. 어느 날 승민이의 가혹한 훈련을 견디지 못하고 결국 양 한 마리가 도망치고 말았다. 양 한 마리가 매우 아쉬운 승민이는 동네에서 가장 유명한 점장이에게 부탁해서 도망친 양의 위치를 알아낼 수 있는 힌트를 받게 되었다. 이 힌트가 적혀 있는 쪽지를 보니 너무 복잡해서 승민이는 도저히 이것으로 양을 찾을 수가 없었다. 승민이를 도와 양을 찾기 위한 프로그램을 작성해보자.

입력 설명

첫 줄에는 테스트케이스 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 좌표 하나 증가). (아래 그림 참조)

image

출력 설명

각 테스트 케이스 별로 양이 위치하고 있을 좌표(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

대체 어디로 간걸까?

댓글남기기