#include<stdio.h>
int main()
{
int count = 8;
char input[3];
scanf("%s", input);
int check = input[0] + input[1] - 'a' - '1';
if (check == 0 || check == 14)
count -= 6;
else if (check == 1 || check == 13)
count -= 5;
else if (check == 2 || check == 12)
count -= 4;
else if (check == 3 || check == 11)
count -= 3;
else if (check == 4 || check == 10)
count -= 2;
printf("%d", count);
}
좀 이상하게 조건문에 꽂쳐서 수학적으로 풀었지만 사실 이렇게 풀라고 내놓은 문제가 아니니 이제 완전 탐색으로도 풀어봐야겠다.
#include<stdio.h>
int main()
{
int knight_move[8][2] = { {1,2},{1,-2},{-1,2},{-1,-2},{2,1},{2,-1},{-2,1},{-2,-1} };
char input[3];
scanf("%s",input);
int count = 0;
for (int i = 0; i < 8; i++)
{
if ('a' <= input[0] + knight_move[i][0] && input[0] + knight_move[i][0] <= 'h'&& '1' <= input[1] + knight_move[i][1] && input[1] + knight_move[i][1] <= '8')
count++;
}
printf("%d", count);
}
이게 완전 탐색으로 푼 방법이다. 이것역시 저 부분을 변수에 대입할 수 있지만 그냥 풀었다.
728x90
'알고리즘 기초시절' 카테고리의 다른 글
[비트연산]대소문자 변경을 비트연산으로 해보자. (3) | 2023.01.15 |
---|---|
이코테 구현알고리즘 예제 1번 상하좌우 -방향벡터 (C언어) (2) | 2023.01.08 |
백준 (C언어) (구현) 게임개발 -방향벡터 및 맵 탐색 (0) | 2023.01.08 |
[백준 BOJ 10816번] 숫자 카드 2 (C++ ) (0) | 2023.01.08 |
백준 c++백준 1181번 단어정렬 (부제 :c++의 말도 안되는 편리함) (0) | 2023.01.05 |