Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- cp949
- 파이썬 클래스
- 파이썬
- 백준
- fatal:not a git repository
- 항해99
- 항해플러스
- 주니어개발자멘토링
- 코딩테스트
- 99클럽
- 주니어개발자역량강화
- 파이썬 |
- print("""
- 99일지
- 파이썬 int()
- Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding
- 개발자사이드프로젝트
- MomentumParameters
- print sep
- 코딩부트캠프후기
- EnvCommandError
- vscode cp949
- 개발자스터디
- not a git repository
- 10430번
- 파이썬 map 함수
- Til
- 파이썬 sep
- 항해
- 99클럽 #99일지 #코딩테스트 #개발자스터디 #항해 #til
Archives
- Today
- Total
선발대
[스파르타] 99클럽 코테스터디 6일차 TIL / 백준 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)
'스파르타코딩클럽 > 활동 내용' 카테고리의 다른 글
[스파르타] 99클럽 2기 코테 스터디 1일차 TIL / 전화번호 목록 (0) | 2024.05.20 |
---|---|
[스파르타] 99클럽 코테스터디 7일차 TIL / 소수 찾기 (1) | 2024.05.09 |
[스파르타] 99클럽 코테스터디 5일차 TIL / 숫자 변환하기 (1) | 2024.05.07 |
[스파르타] 99클럽 코테스터디 4일차 TIL / 백준 15686 (0) | 2024.05.06 |
[스파르타] 99클럽 코테스터디 3일차 TIL / 백준 2010 (0) | 2024.05.05 |
Comments