우당탕탕 개발일지
[스택/큐] 프로그래머스 level 1 같은 숫자는 싫어 (Python 파이썬) 본문
💡문제 링크
💡문제 분석 요약
배열 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:]로 넣는 거 정말 천재적인 생각이다..!
'알고리즘' 카테고리의 다른 글
[조건문] Softeer level2 8단 변속기 (Python 파이썬) (0) | 2024.03.14 |
---|---|
[숫자] 소프티어 Softeer level 2 전광판 (Python 파이썬) (0) | 2024.03.12 |
[DFS/BFS] 백준 14502번: 연구소 Gold IV(Python 파이썬) (0) | 2024.02.14 |
[DFS/BFS] 백준 18352번: 특정 거리의 도시 찾기 Silver II (Python 파이썬) ⭐ (0) | 2024.02.14 |
[해시] 프로그래머스 level 2 의상 (Python 파이썬) (1) | 2024.02.11 |