본문 바로가기
코딩 테스트/swea

증가하는 사탕 수열

by ornni 2024. 12. 16.
728x90
반응형

첫번째 코드

 

이번에는 문제 잘 읽고 이상하게 접근하지 말자 ㅋㅋㅋ

 

0이 있는 경우 조건에 맞지 않으므로 -1을 내보낸다.

또한 A, B, C 상자를 역순으로 C, B, A 순으로 바라보면서

만약 최소한의 사탕을 먹는 방법으로 접근한다.

 

test_case = int(input())

for t in range(test_case):

    box_list = list(map(int, input().split()))
    eat = 0

    for i in range(2, 0, -1):
        if 0 in box_list:
            eat = -1
            break

        if box_list[i-1] >= box_list[i]:
            limit = box_list[i] - 1
            eat += (box_list[i-1] - limit)
            box_list[i-1] = limit
    
    print(f'#{t+1} {eat}')

 

오류..?


두번째 코드

 

반례를 찾았다! 1 1 3의 경우 -1을 내보내야 하는데 위 코드의 경우 1을 내보낸다.

 

이는 0나 마지막 결과에 나왔을 경우 -1을 내보내지 않고 끝내기 때문이다.

그렇기 때문에 내부에 0이 있는지를 마지막에 확인하면 된다! >> 순서변경!

 

test_case = int(input())

for t in range(test_case):

    box_list = list(map(int, input().split()))
    eat = 0

    for i in range(2, 0, -1):

        if box_list[i-1] >= box_list[i]:
            limit = box_list[i] - 1
            eat += (box_list[i-1] - limit)
            box_list[i-1] = limit

        if 0 in box_list:
                eat = -1
                break
        
    print(f'#{t+1} {eat}')

 

통과!


링크

https://github.com/ornni/programmers/tree/main/SWEA/D3/20551.%E2%80%85%EC%A6%9D%EA%B0%80%ED%95%98%EB%8A%94%E2%80%85%EC%82%AC%ED%83%95%E2%80%85%EC%88%98%EC%97%B4

 

programmers/SWEA/D3/20551. 증가하는 사탕 수열 at main · ornni/programmers

repository for recording Programmers Algorithm problem solving - ornni/programmers

github.com

 

반응형

'코딩 테스트 > swea' 카테고리의 다른 글

식료품 가게  (0) 2024.12.23
육십갑자  (0) 2024.12.20
방울 마술  (2) 2024.12.13
구구단 걷기  (0) 2024.12.06
직사각형과 점  (0) 2024.12.02