코딩 테스트/프로그래머스
[Python] 프로그래머스 같은 숫자는 싫어
위시리
2024. 10. 15. 21:41
알고리즘 고득점 kit - 스택/큐 - lv 1
문제 분석
- 배열 arr 의 원소는 0부터 9까지
- 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거
- 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지
코드 설계
- 만약 answer 배열이 비어있다면 값을 넣고
- answer이 비어있지 않고
- 배열의 마지막 값이 입력하려는 값과 같지 않다면
- answer 배열에 추가
정답 코드
def solution(arr):
answer = []
for i in arr:
if answer :
if i != answer[-1] : # answer에 값이 있다면
answer.append(i)
else : # answer에 값이 없다면
answer.append(i)
return answer
다른 사람 코드 1
def solution(arr):
answer = []
for i in arr :
if answer[-1:] == [i] :
continue
answer.append(i)
return answer
- [ -1 : ] : 처음부터 마지막 미만
다른 사람 코드 2
def solution(arr):
stack = [-1]
for i in range(len(arr)):
if stack[-1] != arr[i]:
stack.append(arr[i])
return stack[1:]
2회차 - 2024.11.26
- answer안에 값이 있을 때, 마지막 리스트 값이 현재 넣으려는 값과 같다면 continue
- 다르면 append
def solution(arr):
answer = []
for i in arr :
if answer and answer[-1] ==i:
continue
else :
answer.append(i)
return answer