반응형
문제 출처 : https://www.acmicpc.net/problem/16162
[문제 풀이]
주어진 음들을 보고 몇 단 고음이 가능한지 계산하여 출력을 해야 하는 문제이다.
n : 주어진 음의 개수
a : 시작하는 음
d : 공차(음이 얼만큼 증가하는가)
주어진 데이터에서 a에서 시작하고 d만큼 증가하는 음들이 몇 개 존재하는지, 즉 몇 단 고음인지 찾아내야 한다.
값들은 연속될 필요는 없으나 순서는 맞아야 한다.
예를 들어
n = 7
a = 3
d = 3
이고 주어진 음들이
3 3 9 7 2 6 9 라면
첫음은 3으로 시작하게 되고 3 증가된 수인 6이 있어야 2단 고음을 완성할 수 있다.
6은 5번째에 존재하며 3과 6사이에는 다른 음들이 있으나 괜찮다.
그리고 마지막 원소가 9로 3, 6, 9 이렇게 3단 고음이 완성된다.
[소스 코드]
다음으로 찾아야하는 수를 now에 저장하고 그 수에 해당하면 result 값을 증가시킨다.
그 후에 now값을 d만큼 증가시켜 다음 수를 찾고자 한다.
import sys
input = sys.stdin.readline
n, a, d = map(int, input().split())
sound = list(map(int, input().split()))
result = 0
now = a
for i in range(n):
if sound[i] == now:
result += 1
now += d
print(result)
반응형
'알고리즘 > python' 카테고리의 다른 글
[python/파이썬] 백준 14247 나무 자르기 (0) | 2022.07.05 |
---|---|
[python/파이썬] 백준 1449 수리공 항승 (0) | 2022.07.05 |
[python/파이썬] 백준 13413 오셀로 재배치 (0) | 2022.07.04 |
[python/파이썬] 백준 2847 게임을 만든 동준이 (0) | 2022.07.01 |
[python/파이썬] 백준 12782 비트 우정지수 (0) | 2022.07.01 |