특정 지점에서 제거 할 블록 목록을 입력하면 결과 "타워"의 높이가 출력됩니다.
이 과제를 설명하는 가장 좋은 방법은 예입니다. 입력은 n 블록을 나타내는 2n 정수 목록입니다 . 첫 번째 정수는 블록의 x 위치이고, 0- 인덱스이며, 두 번째 정수는 블록의 넓이입니다. 예를 들어, 입력은 블록 을 나타냅니다 (x 좌표는 아래에 레이블이 지정됨).2 4
####
0123456789
이제 입력이 2 4 4 6입니다. 즉, 너비가 4 인 x = 2에서 하나의 블록, 너비가 6 인 x = 4에서 하나의 블록.
######
####
a.) 블록은 항상 탑의 꼭대기에서 "떨어져"있으며 b.) 블록은 "떨어지지"않습니다 (즉, 항상 균형을 잡습니다). 따라서 입력은 다음을
2 4 4 6 12 1나타냅니다.
######
#### #
마지막 블록은 "지상"까지 떨어졌습니다.
최종 출력은 각 x 값에서 최대 타워의 최대 높이 여야합니다. 따라서 입력 2 4 4 6 12 1결과는
0011222222001다음과 같습니다.
######
#### #
0011222222001
입력은 공백 / 쉼표로 구분 된 문자열, 정수 배열 또는 함수 / 명령 줄 인수로 제공 될 수 있습니다. 블록 위치 (x 값)는 항상 정수 0 이상이고 너비는 항상 정수 1 이상이며 항상 하나 이상의 블록이 있습니다.
숫자가 아닌 문자 (예 :)로 구분 된 단일 문자열 "0, 0, 1, ...", 모든 숫자를 나열하는 단일 문자열 (예 :
"001..."최대 높이는 9 이하 임) 또는 정수 배열로 출력 할 수 있습니다.
이것은 code-golf 이므로 바이트 단위의 가장 짧은 코드가 승리합니다.
테스트 사례 :
In Out
---------------------------------------------------------
2 4 4 6 12 1 0011222222001
0 5 9 1 6 4 2 5 1133333222
0 5 9 1 2 5 6 4 1122223333
0 5 2 5 6 4 9 1 1122223334
20 1 20 1 20 1 00000000000000000003
5 5 000011111
0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 4 123456789999