← 실전 문제

횟수를 읽는 출입 카운터

Python디버깅

출입 문자열 text는 횟수E 또는 횟수L 명령을 빈틈없이 이어 붙인 형태예요. E는 그 횟수만큼 입장, L은 그 횟수만큼 퇴장을 뜻해요. 처음 인원은 0이고 퇴장 요청이 현재 인원보다 많으면 0까지 줄여요. 명령 순서대로 처리한 최종 인원과 처리 중 최대 인원을 반환해요.

solution(text)가 [최종 인원, 최대 인원]을 반환하도록 잘못된 한 줄을 고쳐 주세요.

매개변수와 반환값

  • text 길이는 2~500이고 올바른 명령만 한 개 이상 들어 있어요. 공백은 없어요.
  • 횟수는 0999의 십진 정수이며 앞에 불필요한 0은 없어요. 숫자는 09 문자만 사용해요.
  • 반환 리스트 길이는 2예요. 최대 인원은 초기 상태 0도 포함해요.

예시

  1. text = '12E3L4E'이면 결과는 [13, 13]이에요.
  2. text = '5L2E10L3E'이면 결과는 [3, 3]이에요.

실행용 입출력

한 줄에 text를 입력하고 두 결과를 공백으로 출력해요.

예시 입력

12E3L4E

예상 결과

13 13

예시 입력

5L2E10L3E

예상 결과

3 3
핵심 개념
  • string-parsing: 문자 하나와 여러 자리 숫자를 구분해요. text[i]는 i번째 문자, .isdigit()은 숫자 문자인지 확인해요. 입력 계약에서는 0~9만 숫자로 사용해요.
  • counting-aggregation: 현재 인원과 최대 인원은 서로 다른 상태예요. 퇴장 뒤 최종 인원이 작아져도 이전 최대값은 유지해요.
  • conditionals: max(0, current - amount)는 0 아래로 내려가지 않게 해요.

int('7')은 문자열을 정수 7로, str(7)은 정수를 문자열로 바꿔요. 여러 자리 수는 왼쪽 숫자를 읽은 상태에 다음 숫자를 이어 계산해요. len(text)는 문자열 길이예요. 문자를 추가할 때 문자열의 +는 이어 붙이기예요.

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

로그인하고 풀기