MODE::CREATIVE

[백준][c++] 1783번: 병든 나이트 본문

BOJ

[백준][c++] 1783번: 병든 나이트

LEE MINGYU 2024. 10. 3. 18:34

https://www.acmicpc.net/problem/1783

문제 해석

  • 그리디 알고리즘을 이용한 최대방문 수 구하기

알고리즘 분류

  • 그리디 알고리즘

풀이

  • 세로가 1칸인 경우: 이동이 불가능하므로 1
  • 세로가 2인 경우: (m+1)/2, 4중 작은값
  • 가로가 7미만일때: m, 4중에 작은값
  • 이외의 경우:  m - 7 + 5 

코드

#include <iostream>
#include <string>
#include <vector>
#include <cmath> 
#include <algorithm>
#include <queue>
using namespace std;

int n,m; //세로, 가로

int main() { 
    cin >> n >> m;

    if (n == 1) {
        cout << "1";
    }
    else if (n == 2) {
        int ans = min((m+1)/2, 4);
        cout << ans;
    }
    else if (m < 7) {
        int ans = min(m, 4);
        cout << ans;
    }
    else {
        cout << m - 7 + 5;
    }
    
    return 0;
}

'BOJ' 카테고리의 다른 글

[백준][c++] 1463번: 1로 만들기  (0) 2024.10.06
[백준][c++] 1735번: 분수 합  (2) 2024.10.03
[백준][c++] 1929번: 소수 구하기  (1) 2024.10.02
[백준][c++] 1966번: 프린터 큐  (0) 2024.10.02
[백준][c++] 2108번: 통계학  (2) 2024.10.01