https://www.acmicpc.net/problem/16162
문제 요약: 대회에서는 처음 음(A), 공차(D) 대로 쌓은 고음만 n단 고음으로 처리해준다.
참가자들이 부른 N개의 음에서 정해진 규칙대로 쌓은 고음의 단수를 찾아라.
INPUT : N, A, D // 참가자가 부른 음 N개
OUTPUT : 참가자의 고음 단수
D만 정해져있다면 어려웠을텐데, A가 정해져 있어서 쉬웠다. for문을 돌면서 그 다음 항에 나올 음이 맞는지만 확인해주면 된다.
def solve(condition, songs):
N,A,D = condition
base = [songs[0]]
ans = 0
nxt = A+D*ans
for i in range(0,N):
if songs[i]==nxt:
ans+=1
nxt = A+D*ans
return ans
if __name__ == '__main__':
condition = list(map(int,input().split())) #N,A,D
songs = list(map(int,input().split()))
print(solve(condition, songs))
'공부하는 것들 > 알고리즘' 카테고리의 다른 글
백준 20300번: 서강근육맨(그리디) (0) | 2021.08.22 |
---|---|
백준 20044 : Project teams(그리디) (0) | 2021.08.22 |
백준 13413번 : 오셀로 재배치(그리디) (0) | 2021.08.22 |
백준 13305 : 주유소(그리디) (0) | 2021.08.21 |
백준 14720: 우유 축제(DP) ** (0) | 2021.05.02 |