반응형
출처
https://programmers.co.kr/learn/courses/30/lessons/12906
문제
배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있다.
배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거
단 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지
입출력예시
문제풀이1
def solution(arr):
push_arr = []
for i in range(len(arr) - 1):
if arr[i] != arr[i + 1]:
push_arr.append(arr[i])
push_arr.append(arr[-1])
return push_arr
- 그리디 풀듯이 푼 문제
- 배열 앞 뒤로 비교해서 다른 수가 나오면 무조건 push -> 맨 마지막 수도 무조건 push (맨 마지막 수는 비교대상이 없기 때문)
문제풀이2
def solution2(arr):
answer = [arr[0]]
for x in arr[1:]:
if answer[-1] != x:
answer.append(x)
return answer
- 문제풀이1 을 개선한 풀이
- answer 배열 초기 선언 시점에 미리 넣어놓고 시작함
반응형
'컴퓨터 > 알고리즘' 카테고리의 다른 글
[프로그래머스] Lv1 콜라츠 추측_python 문제 풀이 (0) | 2022.07.06 |
---|---|
[프로그래머스] Lv1 자연수 뒤집어 배열로 만들기_python 문제 풀이 (0) | 2022.07.05 |
[프로그래머스] Lv1 py개수_python 문제 풀이 (0) | 2022.07.03 |
[프로그래머스] Lv1 수박수박수?_python 문제 풀이 (0) | 2022.06.28 |
[프로그래머스] Lv1 서울에서 김서방 찾기_python 문제 풀이 (0) | 2022.06.27 |
댓글