프로그래밍/알고리즘

(SW Expert Academy) - [파이썬 S/W 문제해결 기본] - 전기버스 (미완성) (해설없음)

레인보우떡 2022. 5. 20. 16:59

금방 풀릴 거라고 생각했는데 크흠

7 / 10 맞은 코드다

 

결국 다른분들 코드를 확인해보니 접근방식이 달랐다 깔끔하게 술술 풀리는 코드..

 

 

#나중에 풀기
line_cnt = int(input())

for i in range(line_cnt):
    mv, dt, cn = map(int, input().split())
    charger_index = list(map(int, input().split()))

	load = [0] * (dt+1)
    charge_cnt = 0

    # 도달 불가능 판단 조건
    flag = True
    for idx in range(len(charger_index)-2):
        if mv < (charger_index[idx+1] - charger_index[idx]):
            flag = False

    if flag:
        # 출발
        idx = 1
        while load[-1] != 1:
            load[idx] += 1
            if idx % mv == 0:
                charge_cnt += 1
            idx += 1

    elif not flag:
        charge_cnt = 0

    result = charge_cnt
    print("#%s %s" % (i+1, result))

생성한 테스트 예제는 아래와 같은데, 예제에 4,6,8번에 문제가 있다

8
3 10 5
1 3 5 7 9
3 10 5
1 3 7 8 9
5 20 5
4 7 9 14 17
3 50 3
1 2 3
9 10 1
5
5 10 1
5
6 11 1
6
1 2 1
1

4번은 조잡하게 코드를 추가해서 해결이 가능은 하지만..

3번과 6,8번이 서로 다른 패턴?으로 동작하는 문제를 통과하지 못해 실패하지 않았을까 추측했다.

 

 

 

다른 사람들의 코드를 보면서 느낀 건

확실히 중복되는 요소가 적고,

생성된 객체나 로직들이 자주 활용되면서,

겉보기에 어려워보이나 들여다보면 이해가 되는 쉬운 코드였던 것 같다.

728x90