잠깐만요
메서드 이름이 똑같은 것을 눈치챘나요? 이 두 메서드는 자바의 오버로딩을 이용하여 선언하는 것입니다. 오버로딩은 이름은 같으나 매개변수 개수나 데이터 형식 등 시그니처가 다른 메서드를 정의하는 것입니다.
코드를 작성할 때는 그 의미를 생각하고 가독성을 고려하는 것이 매우 중요합니다. 주석을 마구 달지 않아도 코드를 읽는 것만으로 그 역할을 파악할 수 있게 작성하면 좋습니다. isDistanced() 메서드는 거리두기를 지켰는지 확인하는 메서드입니다.
isDistanced(room)과 isDistanced(room, x, y)를 비교해보면 대기실 정보인 room만 넘겨주었을 때는 해당 대기실이 거리두기를 지키고 있는지 검사하는 것이고, 대기실과 위치 정보를 넘겨주었을 때는 해당 대기실에서 (x, y) 위치의 응시자가 거리두기를 지키고 있는지 검사하는 것이라는 것을 쉽게 파악할 수 있습니다.
1-A. 상하좌우 중 빈 테이블이 있는 방향에 대해 1-B로 진행
(x, y) 위치에 있는 응시자가 거리두기를 지키고 있는지 검사하려면 먼저 상하좌우를 검사해야 합니다. 상하좌우를 검색하고자 다음과 같이 dx, dy를 선언해줍니다.
private static final int dx[] = {0, 0, -1, 1};
private static final int dy[] = {-1, 1, 0, 0};