1. 문제
programmers.co.kr/learn/courses/30/lessons/12906
2. 내가 생각했던 풀이과정
첫 번째 생각했던 풀이 과정
1) 빈 배열을 주고 모든 리스트의 요소를 비교합니다
2) 배열의 요소가 temp와 다를 경우 temp를 그 수로 변경하고, 리스트에 추가합니다
이 경우, 테스트는 맞았지만, 효율성에 문제가 생겨 다르게 생각해보았다
두 번째 생각했던 풀이 과정
1) 배열의 첫번째 요소를 빈 리스트에 넣어줍니다
2) 1 부터 배열의 길이만큼 반복문을 돌면서 배열의 다음 수와 배열의 이전 요소가 같지 않다면 배열에 추가합니다
3. 나의 풀이
첫번째 풀이 과정
arr = list(map(int, input().split()))
# 1
def solution(arr):
answer = []
temp = 0
for i in range(len(arr)):
if temp != arr[i]:
temp = arr[i]
answer.append(arr[i])
else:
continue
return answer
두번째 풀이 과정
def solution(arr):
answer = []
answer.append(arr[0])
for i in range(1, len(arr)):
if arr[i] != arr[i-1]:
answer.append(arr[i])
return answer
4. 다른 사람의 풀이
def no_continuous(s):
a = []
for i in s:
if a[-1:] == [i]: continue
a.append(i)
return a
5. 새로 알게된 점
슬라이스를 할 때, [-1:] 을 하여도 오류가 안나는 것을 알게 되었습니다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 핸드폰 번호 가리기 (0) | 2021.01.13 |
---|---|
[프로그래머스] 2016년 (0) | 2021.01.12 |
[프로그래머스] 하샤드 수 - 파이썬 (0) | 2020.12.28 |
[프로그래머스] x만큼 간격이 있는 n개의 숫자 - 파이썬 (0) | 2020.12.27 |
[프로그래머스] 콜라츠 추측 (0) | 2020.12.27 |
댓글