PS/BOJ

[백준] 16162 : 가희와 3단 고음

bconfiden2 2021. 5. 29. 15:20

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

 

16162번: 가희와 3단 고음

첫째 줄에 참가자들의 음의 개수를 나타내는 정수 N(1 ≤ N ≤ 2 x 104), 고음의 첫 항과 공차를 의미하는 정수 A, D(1 ≤ A, D ≤ 107)가 공백으로 구분되어 주어진다. 둘째 줄에 참가자들의 음을

www.acmicpc.net


    • 주어지는 음계는 반드시 순서대로 확인해야 한다.
    • 첫 음계인 A 와 공차인 D 가 주어지기 때문에, 순차적으로 들어오는 음계에서 A + X*D 에 해당하는 값이 들어오는지만 확인해주면 된다.
    • A 마저도 들어오지 않을 수 있다는 점 (0단 고음) 이 반례가 될 수 있다.
    • A 와 D 가 정해지지 않고 음계들 중 가장 높은 X 를 구하는 문제로 바뀌면 풀 수 있을까? DP 스타일일 것 같긴 하다.

#include <iostream>

using namespace std;

int N, A, D, temp;
int answer;

int main(void)
{
    cin >> N >> A >> D;
    int cur = A;                // 첫 음부터 확인 시작
    for(int i = 0 ; i < N ; i++)
    {
        cin >> temp;
        if(temp == cur)         // 만약 X단 고음을 위한 현재 음계가 맞다면
        {
            cur += D;           // 다음 단의 음계로 재설정
            answer++;
        }
    }
    cout << answer << endl;
}