반응형
Cos Pro 1급 기출문제 - 1차 문제 6, 체스의 나이트 에 대한 C언어를 이용한 저의 풀이입니다.
목차
- 문제 설명
- 매개변수 설명
- return 값 설명
- 예제
- ***풀이 전략***
- 문제와 답
문제 설명
---
매개변수 설명
---
return 값 설명
---
예제
---
문제와 답
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
int solution(char* pos) {
int answer = 0;
char row = pos[0];
char col = pos[1];
for (int i = 0; i < 8; i++)
{ // 8칸 중에서
char new_row = pos[0];
char new_col = pos[1];
char add_row = 0;
char add_col = 0;
switch (i)
{
case 0: add_row = +1; add_col = +2; break;
case 1: add_row = +2; add_col = +1; break;
case 2: add_row = +2; add_col = -1; break;
case 3: add_row = +1; add_col = -2; break;
case 4: add_row = -1; add_col = -2; break;
case 5: add_row = -2; add_col = -1; break;
case 6: add_row = -2; add_col = +1; break;
case 7: add_row = -1; add_col = +2; break;
}
// 이동시켰을 때, 범위를 보고..
new_row = row + add_row;
new_col = col + add_col;
//printf("%d - %c%c\n",i, new_row, new_col);
if (new_row < 'A' || new_row > 'H')
continue;
if (new_col < '1' || new_col > '8')
continue;
answer += 1;
}
return answer;
}
int main() {
char* pos = "A7";
int ret = solution(pos);
printf("solution 함수의 반환 값은 %d 입니다.\n", ret);
}
|
cs |
풀이 전략
나이트의 이동 규칙은 switch case 로 나누었으며
char를 ASCII 테이블로 변환했을 때, 위아래 범위를 정해줄 수 있겠다 하는 아이디어에서 출발하여
체스칸의 경계를 계산한다.
728x90
'SW > CodingTest' 카테고리의 다른 글
CosPro1급 기출문제 - 1차 문제 10 - 0들을 0으로 만들기 (C언어) (1) | 2022.03.02 |
---|---|
CosPro1급 모의고사 - Part.3 함수 작성 - 메모장 (C언어) (0) | 2022.03.01 |
CosPro1급 모의고사 - Part.3 함수 작성 - 숫자 뽑기 (C언어) (0) | 2022.03.01 |
CosPro1급 모의고사 - Part.3 함수 작성 - 꽃피우기 (C언어) (0) | 2022.03.01 |
CosPro1급 모의고사 - Part.2 한 줄 바꾸기 - 카드셔플 (C언어) (0) | 2022.03.01 |