[PCCP 기출문제] 1번 / 붕대 감기

Seohyun·2024년 8월 21일
0

알고리즘

목록 보기
21/36

문제 링크

처음 제출한 코드는 실행했을 때의 테스트케이스에선 통과했으나 제출해보니 몇 가지 테스트케이스에서 실패했다.

def solution(bandage, health, attacks):
    answer = health
    
    t, x, y = bandage
    t_series = 0
    i = 0
    for second in range(attacks[-1][0]+1):
        
        if second == attacks[i][0]:
            answer -= attacks[i][1]
            if answer <= 0:
                return -1
            i += 1
            t_series = 0
            continue
            
        else:
            answer += x
            t_series += 1
            if t_series == t:
                answer += y
            
        if answer > health:
            answer = health
    
    return answer

테스트 1 〉 통과 (0.01ms, 10.2MB)
테스트 2 〉 통과 (0.02ms, 10.3MB)
테스트 3 〉 통과 (0.01ms, 10.3MB)
테스트 4 〉 통과 (0.01ms, 10.2MB)
테스트 5 〉 통과 (0.01ms, 10.1MB)
테스트 6 〉 통과 (0.01ms, 10.2MB)
테스트 7 〉 통과 (0.07ms, 10.2MB)
테스트 8 〉 통과 (0.03ms, 10.2MB)
테스트 9 〉 통과 (0.06ms, 10MB)
테스트 10 〉 통과 (0.01ms, 10.4MB)
테스트 11 〉 통과 (0.14ms, 10.3MB)
테스트 12 〉 통과 (0.11ms, 10.2MB)
테스트 13 〉 통과 (0.13ms, 10MB)
테스트 14 〉 실패 (0.15ms, 10.2MB)
테스트 15 〉 통과 (0.16ms, 10.3MB)
테스트 16 〉 실패 (0.07ms, 10.2MB)
테스트 17 〉 통과 (0.03ms, 10.3MB)
테스트 18 〉 실패 (0.19ms, 10.2MB)
테스트 19 〉 통과 (0.14ms, 10.3MB)
테스트 20 〉 실패 (0.20ms, 10.2MB)

그래서 다시 한 번 살펴보니 한 줄을 빼먹어서 그런 거였다... ㅎ

t_series = 0

를 추가해서

def solution(bandage, health, attacks):
    answer = health
    
    t, x, y = bandage
    t_series = 0
    i = 0
    for second in range(attacks[-1][0]+1):
        
        if second == attacks[i][0]:
            answer -= attacks[i][1]
            if answer <= 0:
                return -1
            i += 1
            t_series = 0
            continue
            
        else:
            answer += x
            t_series += 1
            if t_series == t:
                answer += y
                t_series = 0
            
        if answer > health:
            answer = health
    
    return answer

제출하니 정답!

profile
Hail hamster

0개의 댓글