미국 시트콤 프렌즈 의 6 명의 주요 출연진 은 모두 시리즈 전 기간 동안 (최소한 시즌 2 이후) 동일한 급여를받는 것에 동의했다 . 그렇다고해서 모두 같은 시간의 대기 시간을 보냈거나 화면에서 서로 같은 양의 상호 작용을했다는 의미는 아닙니다.
이 도전에서, 당신은 어떤 친구의 친구가 정말로 가장 좋았 는지 결정하는 데 도움이되는 프로그램을 작성하게 됩니다.
설정
친구 의 에피소드 나 장면을보고 각 카메라를 촬영하는 동안 화면에 누가 표시되어 있는지 그리고 얼마나 오래 있는지 정확히 메모 해 두십시오.
각 캐릭터의 이름을 약칭하겠습니다.
그런 다음 모든 카메라 샷 (또는 캐릭터가 샷을 입력 / 종료 할 때마다)마다 화면에 누가 있었는지 나열합니다. 예를 들면 다음과 같습니다.
504 CRS
200 J
345 MP
980
2000 CJMPRS
이것은 말하고 있습니다 :
- 504ms 동안 챈들러, 레이첼, 로스가 스크린에있었습니다.
- 그리고 200ms 동안 Joey는있었습니다.
- 345ms 동안 Monica와 Phoebe가있었습니다.
- 그런 다음 980ms 동안 화면에 6 개의 주요 캐릭터가 없었습니다.
- 그런 다음 2 초 동안 모든 것이있었습니다.
(이것은 실제 클립이 아니며 구성했습니다.)
다음은 동일합니다.
504 CRS
1 J
199 J
345 MP
980
2000 CJMPRS
스크린 타임이 가장 많은 문자 조합을 분석하기 위해 6 개의 문자 중 64 개의 가능한 서브 세트를 모두보고 해당 스크린 시간을 합산했습니다. 카메라 촬영 중에 서브 세트의 모든 사람이 화면에 나타나면 서브 세트에 있는 것보다 많은 문자가 있더라도 해당 카메라 샷의 시간이 해당 서브 세트의 총 화면 시간에 추가됩니다.
빈 서브셋에는 예외가 있습니다. 6 개의 메인 캐릭터가없는 장면 만 계산됩니다.
따라서 위 예제의 분석은 다음과 같습니다.
980
2504 C
2200 J
2345 M
2345 P
2504 R
2504 S
2000 CJ
2000 CM
2000 CP
2504 CR
2504 CS
2000 JM
2000 JP
2000 JR
2000 JS
2345 MP
2000 MR
2000 MS
2000 PR
2000 PS
2504 RS
2000 CJM
2000 CJP
2000 CJR
2000 CJS
2000 CMP
2000 CMR
2000 CMS
2000 CPR
2000 CPS
2504 CRS
2000 JMP
2000 JMR
2000 JMS
2000 JPR
2000 JPS
2000 JRS
2000 MPR
2000 MPS
2000 MRS
2000 PRS
2000 CJMP
2000 CJMR
2000 CJMS
2000 CJPR
2000 CJPS
2000 CJRS
2000 CMPR
2000 CMPS
2000 CMRS
2000 CPRS
2000 JMPR
2000 JMPS
2000 JMRS
2000 JPRS
2000 MPRS
2000 CJMPR
2000 CJMPS
2000 CJMRS
2000 CJPRS
2000 CMPRS
2000 JMPRS
2000 CJMPRS
우리는 J
(Joy 만) 2200ms의 스크린 타임을 가졌다는 것을 알 수 있습니다.
도전
다음과 같은 문자열 또는 텍스트 파일을받는 프로그램을 작성하십시오.
504 CRS
200 J
345 MP
980
2000 CJMPRS
여기서 각 줄은 형식 [time in ms] [characters on screen]
을 가지며 6 자 중 64 개 하위 집합이 화면에서 소비 한 총 시간을 출력합니다. 여기서 각 줄은 [total time in ms for subset] [characters in subset]
위와 같은 형식을 갖습니다 .
입력은 stdin, 명령 행 또는 함수에 대한 문자열로 사용되거나 데이터가 포함 된 텍스트 파일의 이름 일 수 있습니다.
- 밀리 초 숫자는 항상 양의 정수입니다.
- 문자는 항상
CJMPRS
알파벳 순서로되어 있습니다 . - 장면에 문자가없는 경우 뒤에 공백이 있다고 가정 할 수 있습니다 (예 :)
980
. - 선택적으로 후행 줄 바꿈이 있다고 가정 할 수 있습니다.
- 입력은 적어도 1 개의 라인을 가지며 임의로 많은 라인을 가질 수 있습니다.
출력은 64 줄 문자열로 다른 텍스트 파일에 인쇄되거나 반환되거나 기록되어야합니다.
- 라인은 임의의 순서 일 수있다.
- 문자는
CJMPRS
순서대로 있을 필요는 없습니다 . - 총 시간 이 0ms 인 하위 집합을 나열해야합니다.
- 빈 부분 집합 합계 뒤에 선택적으로 후행 공백이있을 수 있습니다.
- 선택적으로 후행 줄 바꿈이있을 수 있습니다.
(이 문제는 물론 더 많은 캐릭터로 일반화 될 수 있지만 6 명의 CJMPRS
친구 캐릭터를 고수 할 것 입니다.)
바이트 단위의 가장 짧은 코드가 이깁니다.
나는 실제로 친구를 즐기고 일부 문자가 다른 문자보다 더 중요하다고 생각하지 않습니다. 통계는 흥미로울 것입니다. ;)