1 minute read

프로그래머스로 스택 문제를 풀어봄! 같은 숫자는 싫어

역시 백문이불여일견 문제를 풀어봐야 더 잘 이해된당.

  • 문제: 배열이 주어졌을때 연속된 숫자에서 하나만 남기고 전부 제거 ex) [1,1,3,3,0,1,1] 이면 [1,3,0,1] return 하기

내가 쓴 답

import sys
input = sys.stdin.readline
def solution(arr):
    curr = arr[0]
    result = []
    result.append(curr)
    //첫번째 값은 return 값에 넣고 시작
    for i in range(1, len(arr)):
        if arr[i] == curr:
        //동일하다면 지나친다
            continue;
        else:
        //다르다면 return 값에 추가하고 비교하는 값을 변경해준다.
            curr = arr[i]
            result.append(arr[i])
    return result

    채점 결과
정확성: 71.9
효율성: 28.1
합계: 100.0 / 100.0

근데 좀더 스택답게 쓰려면, 맨 마지막 값만 비교해주면 되지 않을까 싶어서 다른 답을 써봤다


import sys
input = sys.stdin.readline
def solution(arr):
    # [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.

    result = [arr[0]]

    for i in range(1, len(arr)):
        if result[-1] != arr[i]:
            result.append(arr[i])

    return result;

    정확성: 71.9
효율성: 28.1
합계: 100.0 / 100.0

근데 점수는 같다…ㅎ

Updated:

Leave a comment