문제
코드
My answer
#! [내 답안]
n,m=map(int,input().split())
num=int(input())
start,end=1,start+m
answer=0
for i in range(num):
a=int(input())
if(a>=start and a<end):pass
elif(a<start):
answer+=start-a
start=a
end=start+m
else:
answer+=a+1-end
end=a+1
start=end-m
print(answer)
Another answer
풀이
바구니의 시작 지점과, 끝 지점 범위 안에 사과가 떨어지면 받을 수 있기 때문에,
시작과 끝 지점 사이에 있을 때는 움직이지 않아도 되고,
바구니보다 왼쪽에 떨어질 때(시작인덱스보다 작을 때)는 시작위치=시작위치-떨어지는위치로 바꿔주고, 끝위치는 다시 바구니 길이만큼 시작+바구니길이 로 조정
바구니보다 오른쪽에 떨어질 때도 마찬가지.
인덱스를 뭐로 지정하느냐만 주의하면 쉽게 해결할 수 있는 문제.
728x90
반응형
'코딩테스트 > 백준[Python]' 카테고리의 다른 글
[Python] 백준 #1758- 알바생 강호 (0) | 2023.08.23 |
---|---|
[Python] 백준 #2217- 로프 (0) | 2023.08.23 |
[Python] 백준 #14916- 거스름돈 (0) | 2023.08.23 |
[Python] 백준 #1343- 폴리오미노 (0) | 2023.08.23 |
[Python] 백준 #15724 - 주지수[try_again]-ing (0) | 2022.03.02 |