백준 8911 거북이 JAVA

sundays·2023년 2월 16일
0

문제

거북이

풀이

언제나 봐도 신나는 구현. 저는 거북이가 가려는 방향을 direction에 담고 if else 파티를 하려고 했는데, 배열로 푼 분들이 많아서 그렇게 짜는게 더 이득이긴하겠다 생각했습니다.

static int[] dx = {0, 1, 0, -1}; // 북, 동, 남, 서
static int[] dy = {1, 0, -1, 0};
...

if (c == 'L') {
	// 현재 북쪽을 보고 있는데 왼쪽으로 회전하면 서쪽을 보아야 합니다
	if (direction == 0) {
    	direction = 3;
    } else {
    	direction += 1;
    }
} else if (c == 'R') {
	// 현재 서쪽을 보고 있는데 오른쪽으로 회전하면 북쪽을 봐야합니다
	if (direction == 3) {
    	direction = 0;
    } else {
    	direction -= 1;
    }
}

실제로 이부분은 코드 짜신 분들의 스타일마다 다른것 같습니다.
그리고 거북이가 이동한 영역을 모두 포함하는 가장 작은 직사각형의 넓이는 Math.abs를 해줘야 합니다. 이렇게 안하면 마이너스 값이 나올 수 있는데 넓이는 마이너스 값이 나올수 없기 때문입니다.

전체 코드

전체 코드

profile
develop life

0개의 댓글