일일이 계산하는방법
int gap = min(block[i-1], block[i+1]);
temp[i] = (block[i]-gap) <= 0 ? 1 : (block[i]-gap);
이런식으로 양옆의 블록크기를 고려해서 루프를 돌고
block[k]-=temp[k];
루프 다시 선언해서 실제 블록에 적용해주는 알고리즘을 쓰려했는데
배열이 10만단위라서 일일이 10만개 다 탐색하려면 당연히 시간초과 뜰거같아서
그냥 C++ 써서 큐를 만든다음 높이가 0인 블록을 제외한 놈들의 인덱스를 큐에 넣고 빠르게 참조하는식으로 했는데도 시간초과잼ㅋㅋ
댓글 0