최대 1 분 소요

사용 언어: Python3

문제

사과 담기 게임

풀이

나의 풀이

N, M = map(int, input().split())
J = int(input())
apple = [int(input()) for _ in range(J)]

# 바구니 시작인덱스, 끝인덱스
lp, rp = 1, M

cnt = 0
for a in apple:
    while True:
        if lp <= a <= rp: # 바구니에 포함되면 다음 사과로 넘어가기
            break
        cnt += 1
        # ✅ 왼쪽 방향으로 슬라이딩
        if a < lp:
            lp, rp = lp-1, rp-1
        # ✅ 오른쪽 방향으로 슬라이딩
        elif a > rp:
            lp, rp = lp+1, rp+1

print(cnt)
  • 테스트 케이스: 성공
  • 제출 결과: 성공
  • 슬라이딩 윈도우 알고리즘에 대해 궁금하다면 이 글을 참고하자!


💛 개인 공부 기록용 블로그입니다. 👻

맨 위로 이동하기