문제 풀이 흐름
문제에서는 여러 대기실이 입력으로 주어지지만 하나의 대기실에 대한 문제 풀이 흐름을 정의하면 이를 각 대기실에 적용할 수 있습니다.
1. 대기실의 모든 응시자 위치에 대해 반복
A. 상하좌우 중 빈 테이블이 있는 방향에 대해 1-B로 진행
B. 빈 테이블과 인접한 위치 중 응시자가 있다면 거리두기를 지키지 않은 것
2. 모든 응시자의 위치를 검사했으나 거리두기를 지키지 않은 경우를 발견하지 못했으면 거리두기를 지킨 것
코드 작성
이를 어떻게 구현할 수 있는지 살펴봅시다. 앞서 세운 문제 풀이 흐름은 하나의 대기실에 적용할 수 있습니다. 이를 적용하기 위해서는 입력되는 데이터를 우리의 문제 풀이 흐름에 맞게 가공해야 합니다.
우선 입력이 String[][] 형식으로 들어오고, 대기실 하나는 String[] 형식이 됩니다. 우리는 원소 하나하나에 관심이 있고 각 대기실이 거리두기를 지키는지 검사할 것이므로 대기실을 char[][] 형식으로 만들어 주고, 거리두기 결과를 저장할 배열을 선언합니다.