[백준] C++ 14890번 경사로

2026. 4. 8. 23:11·알고리즘
#include <bits/stdc++.h>
using namespace std;
int n, l, a[104][104], b[104][104], ret;

void sol(int a[104][104]) {
    for (int i = 0; i < n; i++) {
        int cnt = 1; // cnt 가 1일때는 현재 자리에 슬라이드가 안깔려 있는 맨 땅임, 또 앞으로는 j + 1을 바로 읽기 때문에 1을 초기값으로 설정함
        int j; // 한 행이 끝나면 그 길의 끝까지 도달했는지 체크하기 위해 for문에서 뺐음
        for (j = 0; j < n - 1; j++) { // + 1 한 위치를 보므로 경계값 - 1 해둔다
            if (a[i][j] == a[i][j + 1]) {
                cnt++;
            }
            else if (a[i][j] + 1 == a[i][j + 1] && cnt >= l ) { // 앞 칸이 + 1높이 이고 && 뒤를 봤을 때 지나온 길에 오르막을 만들 수 있는지 (l 보다 현재까지 지나온 길이 길거나 같으면 놓을 수 있음)
                cnt = 1; // 지나온 길 카운팅 리셋, cnt 가 1일때는 현재 자리에 경사로가 안깔려 있는 맨 땅임
            }
            else if (a[i][j] - 1 == a[i][j + 1] && cnt >= 0) { // 앞칸이 -1 높이이고 && 현재 자리에 경사로를 깔지 않은 상태 일때만 가능 (cnt가 음수일 경우엔 이전에 깔았던 내리막이 아직 안끝난 자리임, 그러므로 현재 자리는 빈땅이 아니므로 내리막을 놓을 수 없음)
                cnt = -l + 1; // 앞으로 l 칸만큼 깔아줌, + 1 한 이유는 앞에서도 이야기 했듯이 j + 1을 바로 읽기 때문에 1을 초기값으로 생각한다.
            }
            else break;
        }         
        if (j == n - 1 && cnt >= 0) { // 한 행이 무사히 끝 && 마지막 칸에 무사히 경사로의 끝이던가 아니면 맨땅이던가
            ret++;
        }
    }
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL); cout.tie(NULL);

    cin >> n >> l;
    for(int i = 0; i < n; i++) {
        for(int j = 0; j < n; j++) {
            cin >> a[i][j];
            b[j][i] = a[i][j];
        }
    }
    sol(a); 
    sol(b);
    cout << ret << "\n";

    return 0;
}

'알고리즘' 카테고리의 다른 글

[백준] C++ 6593번:상범 빌딩!  (0) 2025.12.17
[백준] C++ 2468번:안전영역!  (1) 2025.12.16
[백준] C++ 5014번:스타트링크!  (0) 2025.12.16
[백준] C++ 2667번:단지번호붙이기!  (0) 2025.12.16
[백준] C++ 2583번:영역 구하기!  (0) 2025.12.15
'알고리즘' 카테고리의 다른 글
  • [백준] C++ 6593번:상범 빌딩!
  • [백준] C++ 2468번:안전영역!
  • [백준] C++ 5014번:스타트링크!
  • [백준] C++ 2667번:단지번호붙이기!
Deepmind_딥마인드
Deepmind_딥마인드
깊게 사고하자
  • Deepmind_딥마인드
    딥마인드
    Deepmind_딥마인드
  • 전체
    오늘
    어제
    • 분류 전체보기 (19)
      • 알고리즘 (11)
      • 메모 (0)
      • C언어 (0)
      • C언어 동아리 (0)
      • Ubuntu (0)
      • Ollama (1)
      • AI (4)
      • 정보공유 (1)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    에어팟 프로
    c언어
    단차
    OpenAI
    소셜딜레마 #넷플릭스 #다큐멘터리 #넷플릭스 영화추천
    agent
    ubuntu server 24.04.4 LTS
    에어팟
    배터리 광탈
    Air Pods Pro
    만다라트 #오타니 #목표설정 #무료템플릿
    Ai
    백준
    ollama
    호환
    노이즈캔슬링
    냄새
    스크래치
    DBeaver
    먼지
    Claude
    렉
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
Deepmind_딥마인드
[백준] C++ 14890번 경사로
상단으로

티스토리툴바