[C++] 백준/Gold/14719. 빗물

2025. 3. 11. 21:11·C++/Algorithm

문제: 빗물 (백준 14719번)

문제 분석

  • 문제 개요:
    주어진 높이 hh 와 너비 ww 의 2차원 공간에서, 블록이 쌓인 형태가 주어진다.
    이때 빗물이 고일 수 있는 칸의 개수를 구하는 문제이다.
  • 핵심 개념:
    • 특정 위치에 빗물이 고이려면 왼쪽과 오른쪽에 블록이 있어야 한다.
    • 각 칸에서 왼쪽과 오른쪽에 블록이 있는지 확인하는 방식으로 문제를 해결

코드 설명

#include <bits/stdc++.h>
using namespace std;

template <typename Iterator>
bool Check(Iterator start, Iterator end)
{
    for (; start != end; ++start)
    {
        if (*start) return true;
    }
    return false;
}

int main()
{
    ios::sync_with_stdio(0); 
    cin.tie(0);
    
    int h, w; 
    cin >> h >> w;
    
    vector<vector<bool>> v(h, vector<bool>(w));
    
    // 블록 입력
    for (int i = 0; i < w; i++)
    {
        int input; 
        cin >> input;
        for (int j = 0; j < input; j++)
        {
            v[j][i] = true;
        }
    }

    int answer = 0;
    
    // 빗물 계산
    for (int i = 0; i < h; i++)
    {
        for (int j = 0; j < w; j++)
        {
            if (v[i][j] == true) continue; // 블록이 있는 곳은 제외

            // 현재 위치의 오른쪽과 왼쪽에 블록이 있는지 확인
            if (Check(v[i].begin() + j, v[i].end()) && Check(v[i].rbegin() + (w - j), v[i].rend()))
                answer++;
        }
    }
    
    cout << answer;
}

'C++ > Algorithm' 카테고리의 다른 글

[C++] 백준/Gold/1253. 좋다  (0) 2025.03.13
[C++] 백준/Gold/2023. 신기한 소수  (0) 2025.03.12
[C++] 백준/Gold/27172. 수 나누기 게임  (0) 2025.03.10
[C++] 백준/Silver/1487. 물건 팔기  (0) 2025.03.05
[C++] 백준/Silver/15903. 카드 합체 놀이  (0) 2025.03.04
'C++/Algorithm' 카테고리의 다른 글
  • [C++] 백준/Gold/1253. 좋다
  • [C++] 백준/Gold/2023. 신기한 소수
  • [C++] 백준/Gold/27172. 수 나누기 게임
  • [C++] 백준/Silver/1487. 물건 팔기
돼지표
돼지표
https://github.com/wkdgns135
  • 돼지표
    돼지표 개발 스토리
    돼지표
  • 전체
    오늘
    어제
    • 분류 전체보기 (105)
      • C++ (60)
        • Algorithm (53)
        • Study (1)
      • Python (1)
      • Machine Learning (2)
      • Computer Graphics (4)
        • Curly Hair Simulation (2)
      • GPU Programming (11)
        • CUDA basic (7)
        • CUDA fluidsGL (4)
      • Unreal 5 (21)
        • Troubleshooting (4)
        • FPS Shooting (5)
        • Study (10)
        • EOS (1)
      • Computer Science (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • Github
  • 공지사항

  • 인기 글

  • 태그

    OpenGL
    자료 구조
    정렬
    수학
    FPS
    BFS
    dp
    CS
    Fluid Simulation
    unreal 5
    위상 정렬
    UE5
    구현
    C++
    CUDA
    그래프 탐색
    Algorithm
    Rendering Pipeline
    GPU Programming
    아이작 맵 생성
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
돼지표
[C++] 백준/Gold/14719. 빗물
상단으로

티스토리툴바