문제 링크
문제 풀이 과정
def solution(arr):
answer = []
check_number = arr[0]
for i in range(len(arr)):
# 이전 숫자와 중복이라면 패스
# 이전 숫자와 같거나, 처음 값이 아니라면
if (arr[i] == check_number) and (i != 0):
continue
# 반복문을 순회하며 처음보는 숫자는 배열에 저장.
answer.append(arr[i])
# 중복이 아니라면 추가하고 체크하는 숫자를 변경
check_number = arr[i]
return answer
# 모범답안
def no_continuous(s):
a = []
for i in s:
if a[-1:] == [i]: continue
a.append(i)
return a
간단한 문제지만 나는 풀 때 처음 값을 미리 저장해두고 그 값을 변경하는 식으로 작성했지만, 모범답안을 보니 가장 최근에 저장된 값을 슬라이싱을 통해 가져오니 설사 값이 없더라도 indexError가 아닌 빈 리스트를 반환하는 걸 활용해서 간략하게 잘 처리한 것 같다. 알고리즘 문제를 풀 때 인덱싱과 슬라이싱을 좀 더 적극적으로 활용하면서 문제를 풀면 좋겠다 싶었다.
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스][Python] 42587 - 프로세스 (0) | 2024.07.10 |
---|---|
[프로그래머스][Python] 12909 - 올바른 괄호 (0) | 2024.07.05 |
[프로그래머스][Python] 크레인 인형뽑기 게임 (0) | 2024.04.11 |