728x90
반응형
TIL
- 인덱스를 정확하게 사용하는 것이 중요하다
- 정확하게 사용하기가 어렵다고 생각하면, 메모리 공간을 추가시켜서 활용하는 방법도 생각해보자
What I did
- APS 수강
- list 알고리즘 solving club 문제 풀이 (4/5 문제)
Memo
- 알고리즘 문제 풀면서 애먹었다
- 아래 코드는 결과적으로 모든 테스트 케이스를 통과하진 못한 알고리즘.. 다만 고생했던 걸 기억하고 싶어서 메모
T = int(input())
for t in range(T):
K, N, M = map(int, input().split())
arr = list(map(int, input().split()))
fuel_arr = [0 for i in range(N)]
road = [0 for i in range(N)]
for i in arr:
road[i-1] = -1
dist = []
for i in range(M-1):
dist.append(arr[i+1] - arr[i])
dist.append(N - arr[M - 1])
fuel_arr[0] = K-1
ans = 0
g = -1
for i in range(1, N):
if i == N - 1: break
fuel_arr[i] = fuel_arr[i-1] - 1
if road[i] == -1: # 주유소를 지나갈 때
g += 1 # 주유소 위치 증가 (몇번째 주유소인지 파악)
if fuel_arr[i] < dist[g]: # 연료보다 가야할 거리가 더 면 경우
if (N-1-i) == fuel_arr[i]: # 연료가 0일 때, 도착지점에 도착 했을 경우
continue # 이상 없음
else: # 연료가 0인데 도착하지 않았을 경우
fuel_arr[i] = K # 연료 충전
ans += 1
if fuel_arr[i] == 0 and road[i] == 0:
ans = 0
break
print(f"#{t+1} {ans}")
'TIL' 카테고리의 다른 글
[Today I Learn] 2022.08.11 (0) | 2022.08.11 |
---|---|
[Today I Learn] 2022.08.03 (0) | 2022.08.04 |
[Today I Learn] 2022.08.02 (0) | 2022.08.02 |
[Today I Learn] 2022.08.01 (0) | 2022.08.01 |
[Today I Learn] 2022.06.16 (0) | 2022.06.21 |