직무
극장 표지 10 행 갖는다 A
으로 J
왼쪽에서 오른쪽으로 1부터 15 번째 앞에서 뒤로, 각 행 (15 개) 좌석.
이 프로그램은 다음 규칙을 사용하여 최적의 좌석을 선택합니다.
- 규칙 1 : 한 예약의 모든 좌석은 서로 같은 줄에 있어야합니다.
- 규칙 2 : 좌석은 가능한 한 앞쪽에 있어야하고 가능한 왼쪽에 있어야합니다 (가장 낮은 글자, 가장 낮은 숫자)
정수 입력 ( n
) 으로 원하는 티켓 수를 취하고 length 목록에서 사용 가능한 최상의 좌석을 출력 하는 함수를 작성하십시오 n
.
당신의 프로그램은 :
-1
1> 입력 또는 입력> 15 * 인 경우 출력-1
좌석을 이용할 수없는 경우 출력 *B(n)
사용자가 원하는 좌석 수를 입력하는 데 사용할 수 있는 기능 이 있습니다.
* 쉬운 경우 -1을 목록으로 출력 할 수 있습니다.
예
I / O
호출 B(5)
새로운 배열은 반환해야 [A1, A2, A3, A4, A5]
호출 B(2)
그 후 반환해야합니다 후 [A6, A7]
호출 B(10)
그 후 반환해야합니다 후 [B1, B2, ... B9, B10]
호출 B(-1)
항상 반환해야-1
언 골프 솔루션 Python
Theatre = [ [False] * 16 ] * 11
def B(n):
if 0 <= n <= 15:
for i in range(10):
for j in range(15-n+1):
try:
if not Theatre[i][j]:
if not Theatre[i][j + n]:
row = i
start = j
List = []
for q in range(n):
List.append(chr(row + 65) + str(start + q + 1))
Theatre[row][start + q] = True
return List
except:
break
return -1