Algorithm/코딩테스트 (Python)
[SWEA 4831][파이썬 S/W 문제해결 기본]. 1일차 - 전기버스
싱브이
2023. 9. 22. 22:34
728x90
반응형
문제
A도시는 전기버스를 운행하려고 한다. 전기버스는 한번 충전으로 이동할 수 있는 정류장 수가 정해져 있어서, 중간에 충전기가 설치된 정류장을 만들기로 했다.
버스는 0번에서 출발해 종점인 N번 정류장까지 이동하고, 한번 충전으로 최대한 이동할 수 있는 정류장 수 K가 정해져 있다.
충전기가 설치된 M개의 정류장 번호가 주어질 때, 최소한 몇 번의 충전을 해야 종점에 도착할 수 있는지 출력하는 프로그램을 만드시오.
만약 충전기 설치가 잘못되어 종점에 도착할 수 없는 경우는 0을 출력한다. 출발지에는 항상 충전기가 설치되어 있지만 충전횟수에는 포함하지 않는다.
내 코드
T = int(input())
for test_case in range(1, T+1):
K, N, M = list(map(int, input().split()))
m = list(map(int, input().split()))
cnt = 0
now = 0
while now + K < N:
for k in range(K, 0, -1):
if (now + k) in m:
now += k
cnt += 1
break
else:
cnt = 0
break
print('#{} {}'.format(test_case, cnt))
현재 위치에서 K 범위 만큼 이동하면서 충전기가 있으면 현재위치를 변경하고 cnt += 1
충전기 설치가 잘못되어 있으면 while문을 더이상 반복하지 않고 cnt 값을 0으로 초기화하고 종료.
for 변수 in range(시작값, 끝값, 증감크기):
예시)
for i in range(1,10,2):
print(i)
#출력값 : 1 3 5 7 9
728x90
반응형