[동빈나]나이트 문제

1157 단어 코테코테

  • 딱히 할 말이 없는 문제.아주 쉬운 문제다.
    2차원 좌표평면 문제이다.
  • L방향 이동은 8가지의 경우를 생각할 수 있다.
    각 이동에 대해 row방향, column방향으로의 이동을 list로서 작성해 놓고, 이동을 할 때의 "좌표"가 어디인지를 파악(8x8공간을 벗어나지 않도록)하며 문제를 풀도록 한다.
#include <iostream>


#define _CRT_SECURE_NO_WARNINGS

using namespace std; 

// 8가지 경우의 수 
int horizon[8] = {2,2,-2,-2,1,1,-1,-1};
int vertical[8] = { 1,-1,1,-1,2,-2,2,-2 };

int main()
{
	int r, c,count=0,next_r,next_c; //행,열
	char temp_c,temp_r;
	scanf("%c%c", &temp_c, &temp_r);
	c = temp_c - 'a'; //'a'는 0   -> 판은 0~7이라 가정.
	r = temp_r - '1'; // '1'은 0  -> 판은 0~7이라 가정
	printf("c: %d, r: %d\n", c, r);
	
	//
	for (int i = 0; i < 8; i++)
	{
		next_r = r + vertical[i];
		next_c = c + horizon[i];
		if (next_c < 0 || next_c>7 || next_r < 0 || next_r>7) continue;
		else {
			printf("i : %d\n", i);
			count++; 
		}
	}
	printf("%d", count);

}

좋은 웹페이지 즐겨찾기