- 딱히 할 말이 없는 문제.아주 쉬운 문제다.
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);
}