초기 네이버 기록/알고리즘(C)

이코테 구현알고리즘 예제 1번 상하좌우 -방향벡터 (C언어)

뜨거운 개발자 2023. 1. 8. 13:20
#include<stdio.h>

int main()
{
	int input;
	scanf("%d", &input);

	//int map[100][2];//0:x 1:y
	int x = 1;
	int y = 1;
	char order[2];
	for (int i = 0; i <= input; i++)
	{
		scanf("%s", &order[0]);
		if (order[0] == 'L' && x > 1)
			x--;
		else if (order[0] == 'R' && x < input)
			x++;
		else if (order[0] == 'U' && y > 1)
			y--;
		else if (order[0] == 'D' && y < input)
			y++;
	}
	printf("%d %d", y, x);
}

난 이렇게 풀었는데 방향 벡터를 이용해서 푸는 방법이 더 깔끔한 것 같다.

dx[4] = {0, 0, 1, -1};(행)

dy[4] = {1, -1, 0, 0};(열)이렇게 미리 dx값을 넣어주고 동서남북 순으로 인덱스 값을 넣어서 사용하면 코드가 더 깔끔하다.

행과 열이 헷갈린다면

가로가 열

세로가 행이다.

728x90