Hikenny25

1일차 - 전기버스 본문

SW Expert Academy/Programming - Intermediate

1일차 - 전기버스

hikenny 2023. 12. 8. 17:30
def is_done(x):
    if x >= n:
        return True
    else:
        return False

t = int(input())
answer = list()

for _ in range(t):
    k, n, m = map(int, input().split())
    stop = [False for _ in range(n)]

    l = list(map(int, input().split()))
    for var in l:
        stop[var-1] = True

    location, cnt = k, 0
    while(not is_done(location)):
        except_var = 0
        for i in range(k):
            if stop[location-1] == True:
                cnt += 1
                break
            else:
                location -= 1
                except_var += 1
                pass
        if(except_var == k):
            cnt = 0
            break
        else:
            location += k

    answer.append(cnt)

for i in range(t):
    print(f"#{i+1} {answer[i]}")

 

머리 풀기 좋은 문제..

k만큼 간 후 정류장이 있으면 바로 진행, 없으면 -1씩 뒤로 가며 정류장을 찾으면 즉시 진행하는 알고리즘을 짜서 구현했다. 불가능한 케이스일 때 0을 출력하는 걸 구현하는데 생각이 잠시 멈췄지만 그냥 변수(except_var) 추가해서 풀이했음!

'SW Expert Academy > Programming - Intermediate' 카테고리의 다른 글

2일차 - 부분집합의 합  (1) 2023.12.08
2일차 - 색칠하기  (1) 2023.12.08
1일차 - 구간합  (1) 2023.12.08
1일차 - 숫자 카드  (1) 2023.12.08
1일차 - min max  (1) 2023.12.08
Comments