선발대

[스파르타] 99클럽 코테스터디 6일차 TIL / 백준 28324 본문

스파르타코딩클럽/활동 내용

[스파르타] 99클럽 코테스터디 6일차 TIL / 백준 28324

신선한 스타트 2024. 5. 8. 23:39

28324번: 스케이트 연습 (링크)

28324번: 스케이트 연습

 

단순하게 생각해서 전체 리스트 중 최소값을 기준으로 '최솟값 + (최솟값+1)*(n-1)'로 구할 수 있다고 생각했다. 그런데 문제 조건에 따르자면 중간 지점에서 원하는대로 최댓값으로 올라갈 수 있는데 이 부분을 미처 고려하지 못했다. 전체 for문을 돌려서 최솟값과 비교하며 하나씩 해볼까 하다가 다르게 푸신 분이 계셔서 참고했다.

 

문제의 조건에 따르자면 마지막 지점에서는 속도가 0이어야 하고, 속도는 내려갈 때 1씩만 감소할 수 있으므로 마지막 중간지점은 무조건 속도가 1이어야 한다. 이렇게 limit_velocity를 미리 1 값을 주고 for문도 n-1번만 돌린다. 마찬가지로 감속은 1씩만 가능하므로 현재 중간지점의 속도는 그 뒤의 속도 개수에 따라 최댓값이 정해진다. 

 

import sys

input = sys.stdin.readline

n = int(input())
velocity = list(map(int, input().split()))
limit_velocity = 1
ans = limit_velocity

for i in range(n-1):
    limit_velocity = min([velocity[-i-2], limit_velocity+1])
    ans += limit_velocity

print(ans)

오늘의 미들러 풀이 끝!


참고한 블로그: https://velog.io/@sbkim1526/99%ED%81%B4%EB%9F%BD-%EC%BD%94%ED%85%8C-%EC%8A%A4%ED%84%B0%EB%94%94-17%EC%9D%BC%EC%B0%A8-TIL-%EC%8A%A4%EC%BC%80%EC%9D%B4%ED%8A%B8-%EC%97%B0%EC%8A%B5

 

99클럽 코테 스터디 17일차 TIL + 스케이트 연습

링크텍스트마지막 중간 노드의 속도는 무조건 1그 직전 i-1 번째 중간 노드는 주어진 제한 속도 내에서 최대로는, i 번째 중간 노드 보다 1 더 클 수 있다.

velog.io

 

Comments