pg115~117
항상 문제보면서, 어떻게하면 간단하게 문제를 풀 수 있을까 생각합니다.
너무 복잡하게 생각하지 않습니다.
예로들면
1.8x8 배열을 만드는 것을 먼저 생각했음.
-> 이러면 안된다.
2.도착지점만 생각해서 하면됬는데, 그 과정에서 체크할지에 대해서 고민했음
-> 체크도 해야하긴하겠지만, 그랬으면 애초에 나이트 이동방식이 달랐을 것입니다.
public class Main {
public static String str;
// 나이트가 이동할 수 있는 8가지 방향 정의
public static int[] dx = {-2,-1,1,2,2,1,-1,-2};
public static int[] dy = {-1,-2,-2,-1,1,2,2,1};
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
str = sc.nextLine();
int row = str.charAt(1) - '0';
int column = str.charAt(0) - 'a'+1;
// 8가지 방향에 대하여 각위치로 이동이 가능한지 확인
int result = 0;
for(int i=0;i<8;i++) {
int nextRow = row + dx[i];
int nextColumn = column + dy[i];
// 해당위치로 이동이 가능하다면 카운트 증가
if(nextRow >= 1 && nextRow <=8 && nextColumn >= 1 && nextColumn <=8) {
result += 1;
}
}
System.out.println(result);
}
}
'기타 > 이것이코딩테스트다' 카테고리의 다른 글
[이것이 코딩테스트다][구현] 게임개발 - 구현 관련 문제(이론) (0) | 2022.03.05 |
---|---|
[이것이 코딩테스트다][구현] 시각 - 구현 관련 문제(이론) (0) | 2022.01.15 |
[이것이 코딩테스트다][구현] 상하좌우 - 구현 관련 문제(이론) (0) | 2022.01.15 |
[이것이 코딩테스트다] 미로 탈출 - BFS 관련 문제 (0) | 2022.01.13 |