오늘의 알고리즘
[C++] 백준 14719 빗물
하늘하늘 .
2022. 5. 31. 14:35
#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;
}
위에서 부터 쌓은 후 위에서 부터 양 옆에 벽이 있는지 체크