Closed jehunyoo closed 1 year ago
문제에서 주어진 로봇청소기가 작동하는 방식을 구현하면 됩니다.
구현 디테일
문제에서 방의 상태를 0 또는 1로 주고 동서남북을 숫자와 연관지어서 데이터를 넘겨주는데 이러한 객체(상태, 방향)를 enum으로 구현했습니다.
enum Status {EMPTY, CLEANED, WALL} enum Direction { NORTH() { Direction turn() { return Direction.WEST; } int[] getDelta() { return new int[]{-1, 0}; } }, EAST { Direction turn() { return Direction.NORTH; } int[] getDelta() { return new int[]{0, 1}; } }, SOUTH { Direction turn() { return Direction.EAST; } int[] getDelta() { return new int[]{1, 0}; } }, WEST { Direction turn() { return Direction.SOUTH; } int[] getDelta() { return new int[]{0, -1}; } }; abstract Direction turn(); abstract int[] getDelta();
enum에 정의한 메서드를 활용하여 반복 작업에 사용되는 지역 변수의 범위를 최소화했습니다.
for (Direction d = dir.turn(); ; d = d.turn())
문제에서 주어진 로봇청소기가 작동하는 방식을 구현하면 됩니다.
구현 디테일
문제에서 방의 상태를 0 또는 1로 주고 동서남북을 숫자와 연관지어서 데이터를 넘겨주는데 이러한 객체(상태, 방향)를 enum으로 구현했습니다.
enum에 정의한 메서드를 활용하여 반복 작업에 사용되는 지역 변수의 범위를 최소화했습니다.