더북(TheBook)

문제 풀이 흐름

거리에 대한 의문이 풀렸으니 이제 문제를 분석해봅시다.

 

1. 주어진 장소(places)의 정보를 받습니다.

2. 문자열(string)을 문자(char)의 배열([ ])로 생각하여 2중 for 문을 작성합니다.

3. 맨해튼 거리 2 이하 & 파티션의 유무를 고려하여 거리두기를 잘했는지 검사합니다.

4. 그 결괏값을 반환합니다.

 

이제 응시자가 앉은 자리(P)에서부터 맨해튼 거리가 2 이하인 경우를 모두 찾고, 파티션이 존재하는지 점검하는 과정만 거치면 됩니다. 가능한 모든 경우를 확인해보겠습니다.

 

• 거리 1

- 밑에 사람이 있는 경우

- 오른쪽에 사람이 있는 경우

- 오른쪽 또는 밑이 파티션이 아닌데 오른쪽 아래에 사람이 있는 경우

- 왼쪽 또는 밑이 파티션이 아닌데 왼쪽 아래에 사람이 있는 경우

• 거리 2

- 밑이 파티션이 아닌데 밑의 밑에 사람이 있는 경우

- 오른쪽이 파티션이 아닌데 오른쪽의 오른쪽에 사람이 있는 경우

이렇게 총 6가지를 만들 수 있습니다. 이 6가지를 검증할 수 있다면 나머지는 코드를 짜기만 하면 됩니다. 이 6개의 조건문을 어떻게 정리할 것인지는 여러분의 자유입니다. 배열을 조회할 때 최대 크기를 벗어난 인덱스로 조회하면 프로그램에 오류가 발생한다는 사실만 기억하면 됩니다.

 

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.