Deep Learning through deep learning

백준 27159번 노 땡스! 본문

Baekjoon_algorithm_heuristic

백준 27159번 노 땡스!

NeuroN 2023. 2. 2. 11:24

https://www.acmicpc.net/

 

Baekjoon Online Judge

Baekjoon Online Judge 프로그래밍 문제를 풀고 온라인으로 채점받을 수 있는 곳입니다.

www.acmicpc.net

코드 해석

더보기
  • 첫줄에 숫자 N 입력됨, 두번째 줄부터 N개만큼 숫자가 입력됨
  • 숫자들을 하나씩 탐색하는 for반복문 하나면 됨
  • 조건은 3가지,
    1. 해당 수 다음 숫자가 이어지는 경우 -> 이어지는 숫자들 중 가장 작은 수를 저장해두기
    2. 해당 수 앞 뒤로 아무것도 이어지지 않는 경우 -> 해당 수를 바로 점수에 더해주기
    3. 나머지의 경우 -> 가장 작은 수가 저장되어 있을테니 가장 작은 수를 점수에 더해주고, 가장 작은 수가 담길 공간을 초기화해주기

코드

#include <iostream>
#include <math.h>
#include <algorithm>
#include <vector>
using namespace std;

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

    int N; cin >> N;
    int x[33] = {};
    int targetmin = 35;
    int sum = 0;

    for (int i = 0; i < N; i++)
    {
        cin >> x[i];
    }
    for (int i = 0; i < N; i++)
    {
        if (x[i] + 1 == x[i + 1])
        {
            if (targetmin > x[i])
            {
                targetmin = x[i];
            }
        }
        else if (x[i] + 1 != x[i + 1] and x[i] - 1 != x[i - 1])
        {
            sum += x[i];
        }
        else
        {
            sum += targetmin;
            targetmin = 35;
        }
    }
    cout << sum;
}