← 실전 문제

가로로 붙은 빈 좌석

C++디버깅

공연장의 좌석 상태가 seats로 주어져요. 0은 빈 좌석이고, 1은 예약된 좌석이에요. 같은 줄에서 가로로 붙어 있는 빈 좌석의 최대 개수를 구하려고 해요. 서로 다른 줄에 있는 좌석은 이어진 것으로 보지 않아요.

int solution(vector<vector<int>> seats)가 최대 개수를 반환해야 해요. 제공된 코드에서 잘못된 한 줄만 수정해 주세요. 빈 좌석이 없으면 0을 반환해요.

매개변수와 반환값

  • 행 수와 열 수는 각각 1 이상 50 이하이며, 모든 행의 길이는 같아요.
  • 각 원소는 0 또는 1이에요.
  • 반환값은 최대 연속 빈 좌석 수로, 0 이상 열 수 이하예요.

예시

  1. seats = [[0, 0, 1, 0], [0, 0, 0, 1]]이면 3을 반환해요. 둘째 줄의 앞 세 좌석이 이어져 있어요.
  2. seats = [[1, 0, 0], [0, 1, 1]]이면 2를 반환해요. 첫 줄의 뒤 두 좌석이 가장 길게 이어져 있어요.

실행용 입출력

첫 줄에 행 수 열 수, 이후 각 줄에 좌석 한 줄의 상태를 입력해요. main은 함수 호출용 하네스이며 반환값을 출력해요.

예시 입력

2 4
0 0 1 0
0 0 0 1

예상 결과

3

예시 입력

2 3
1 0 0
0 1 1

예상 결과

2
핵심 개념
  • array-2d: 행별로 독립된 연속 구간을 읽어요.
  • loops: 현재 구간의 상태와 전체 최댓값의 유지 범위를 구분해요.
  • stl-vector: 주어진 벡터의 크기와 인덱스로 데이터를 읽어요.

코드 작성과 채점은 로그인 후 이용해요

로그인하고 풀기