티스토리 뷰
728x90
반응형
문제
programmers.co.kr/learn/courses/30/lessons/12906?language=python3
코딩테스트 연습 - 같은 숫자는 싫어
배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은
programmers.co.kr
코드
def solution(arr):
answer = []
for i in arr:
if answer[-1:] == [i]:
continue
else:
answer.append(i)
return answer
코드설명
연속적으로 나타나는 숫자를 하나만 남기고 전부 제거하는 문제이다.
처음에는 set을 사용해 풀려고 했으나 첫번째 예제처럼 연속으로 나오지만 않는다면 같은 숫자라도 여러개가 나올 수 있어서 set으로는 풀 수가 없다.
그래서 arr 리스트를 순서대로 돌면서 answer 리스트에 마지막값하고 비교해서 다를 경우 answer에 넣어주면된다.
여기서 주의할점은 answer에 처음에 아무값도 안들어 있기때문에 answer[-1]로 하면 인덱스에러가 나온다.
그래서 answer[-1:]을 사용하는데 그러면 리스트형태로 값이 나오기 때문에 비교하는 값도 리스트형태로 비교해주면 된다.
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] Level3, 2 x n 타일링 (Python) (0) | 2021.05.05 |
---|---|
[프로그래머스] Level2, 위장 (Python) (0) | 2021.05.02 |
[프로그래머스] Level2, 다음 큰 숫자 (Python) (0) | 2021.05.02 |
[프로그래머스] Level2, 기능 개발 (Python) (0) | 2021.05.02 |
[프로그래머스] Level2, 주식가격 (Python) (0) | 2021.04.30 |
댓글