알고리즘
[스택/큐] 프로그래머스 level 1 같은 숫자는 싫어 (Python 파이썬)
민아당긴아
2024. 3. 6. 16:01
💡문제 링크
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
💡문제 분석 요약
배열 arr은 0과 9 사이의 숫자로 이루어져 있음배열 arr에서 숫자가 연속적으로 나타나는 경우, 하나만 남기고 모두 제거
💡알고리즘 설계
입력값: arr
출력값: 중복값이 없는 배열1.리턴할 배열 answer을 만든다.2. arr의 원소들에 대해 반복문 돌리기3. arr의 원소가 answer의 맨 마지막 원소와 같지 않은 경우에만 answer에 arr원소 넣기
💡코드
def solution(arr):
answer = [arr[0]]
for a in arr[1:]:
if answer[-1] != a:
answer.append(a)
return answer
💡 오답 풀이
def solution(arr):
answer = []
for a in arr:
if answer[-1] != a:
answer.append(a)
return answer
처음에 이렇게 했는데 인덱스 에러가 떴다( IndexError: list index out of range ).
answer가 빈 리스트인데 answer[-1]를 해서 뜬 에러였다..
💡 다른 풀이
def solution(arr):
answer = []
for a in arr:
if answer[-1:] != [a]:
answer.append(a)
return answer
answer[-1] 대신에 answer[-1:]을 해주면 No Problem!
💡 느낀점 or 기억할정보
인덱스 [-1:]로 넣는 거 정말 천재적인 생각이다..!