728x90
https://programmers.co.kr/learn/courses/30/lessons/12906
1단계 문제! 겁나 쉽다
- arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다.
- arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다.
처음엔 단순하게 생각했다.
arr 포문 돌려서 다음값이랑 같으면 안넣고 다르면 넣고
예를 들면
for i in arr:
if i != i+1:
answer.append(i)
else:
continue:
return answer
근데 ㅋㅋㅋㅋ
i+1은 말그대로 i에 1을 더하기때문에 arr가 고대로 나왔다.
그래서 정공법으로 일단 풀었다.
일단 시도해본 형태가
def solution(arr):
answer = []
for i in range(len(arr)):
if arr[i] != arr[i-1]:
answer.append(arr[i])
else:
continue
return answer
근데 list[-1]은 리스트에서 마지막 값을 나타내기 때문에 리스트 처음과 끝이 같다면 맨앞의 값이 들어가지 않았음
그럼 처음엔 무조건 답에 들어가게 만들어주면 되지 뭐
하고 작성하고 테스트를 모두 통과한 코드가 바로 다음 코드다
def solution(arr):
answer = []
for i in range(len(arr)):
if i == 0:
answer.append(arr[0])
elif arr[i] != arr[i-1]:
answer.append(arr[i])
else:
continue
return answer
효율성이 구리려나..싶었는데 다행히 100점으로 통과했다.
다른 고수들의 코드를 살펴보자
def no_continuous(s):
a = []
for i in s:
if a[-1:] == [i]: continue
a.append(i)
return a
answer 속의 인덱스로 판단해버리다니
이런이런...대단하구만
728x90
'코딩테스트' 카테고리의 다른 글
프로그래머스 - K번째수 (0) | 2021.07.21 |
---|---|
프로그래머스 - 3진법 뒤집기 (0) | 2021.07.19 |
프로그래머스 - 콜라츠 추측 (0) | 2021.07.12 |
프로그래머스 음양더하기 (0) | 2021.07.11 |
프로그래머스 폰켓몬 문제 (0) | 2021.06.13 |