#include <iostream>
bool visit[501][501] = {};
int main()
{
int H = 0;
int W = 0;
std::cin >> H >> W;
for (int i = 0; i < W; ++i)
{
int iNumber = 0;
std::cin >> iNumber;
while (iNumber--)
{
visit[iNumber][i] = true;
}
}
int iSum = 0;
for (int i = 0; i < H; ++i)
{
int iCount = 0;
bool bWall = false;
for (int j = 0; j < W; ++j)
{
if (visit[i][j])
{
if (bWall)
{
iSum += iCount;
iCount = 0;
}
else
{
bWall = true;
iCount = 0;
}
}
else
++iCount;
}
}
std::cout << iSum;
return 0;
}
위에서 부터 쌓은 후 위에서 부터 양 옆에 벽이 있는지 체크
'오늘의 알고리즘' 카테고리의 다른 글
[C++] 백준 5972 택배 배송 (0) | 2022.06.02 |
---|---|
[C++] 백준 2493 탑 (0) | 2022.06.01 |
[C++] 백준 16234번 인구 이동 (0) | 2022.05.30 |
[C++] 백준 17615 볼 모으기 (0) | 2022.05.28 |
[C++] 백준 20437 문자열 게임 2 (0) | 2022.05.27 |