프로그래머스-같은 숫자는 싫어(파이썬, python)

SA Jung·2022년 9월 28일
0

Programmers 문제 풀이

목록 보기
2/14

https://school.programmers.co.kr/learn/courses/30/lessons/12906

[git]
https://github.com/JungSangA/Algorithm_Study/blob/main/%EC%8A%A4%ED%83%9D%26%ED%81%90/%EA%B0%99%EC%9D%80%20%EC%88%AB%EC%9E%90%EB%8A%94%20%EC%8B%AB%EC%96%B4.ipynb

1. stack을 통한 풀이

def solution(arr):
    stack =[]
    for i in arr:
        if len(stack) ==0:
            stack.append(i)
        elif i != stack[-1]:
            stack.append(i)
    return stack
  • stack을 만들고 for문을 통해 arr의 요소들을 조건에 맞춰 stack에 쌓거나 제거한다.
  • 문제의 요점은 연속된 숫자가 나올시 하나의 숫자만 출력한다는 것이므로 stack의 길이가 0(base condition)일 때, 0번 인덱스값을 추가하는 것을 시작으로 다음 값들을 계속 비교해가면서 마지막에 넣은 값과 현재 값이 같으면 skip하고, 다르면 stack에 추가한다.
  • 모든 for문을 완료한 후에 stack을 return해준다.
profile
Tomorrow will be better than yesterday :)

0개의 댓글