https://www.acmicpc.net/problem/16162
- 주어지는 음계는 반드시 순서대로 확인해야 한다.
- 첫 음계인 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;
}
'PS > BOJ' 카테고리의 다른 글
[백준] 21758 : 꿀 따기 (0) | 2021.05.31 |
---|---|
[백준] 9466 : 텀 프로젝트 (0) | 2021.05.30 |
[백준] 11653 : 소인수분해 (0) | 2021.05.28 |
[백준] 13305 : 주유소 (0) | 2021.05.27 |
[백준] 11722 : 가장 긴 감소하는 부분 수열 (0) | 2021.05.26 |