def solution(arr):
answer = []
for i, j in enumerate(arr) :
if i != 0 :
if j == answer[-1] :
continue
else :
answer.append(j)
else :
answer.append(j)
return answer
풀이
1. enumerate를 사용하여 리스트의 인덱스와 값을 각각 i와 j에 반복하여 받도록 한다
2. i가 1이상일 경우에만 비교할 수 있으므로 if 문을 사용해서 i가 0이 아닌 경우,
1) arr에서 받은 값 j와 그 전에 리스트에 넣은 값(이전 j값)을 비교하여 같으면 반복문 처음으로 돌아간다.
2) 다를 경우에는 리스트에 추가해준다.
3. i가 0일 경우에는, 무조건 리스트에 넣는 경우이므로 리스트에 넣어준다.
def solution(arr):
answer = []
for i in arr :
if i[-1:] == [i] :
continue
arr.append(i)
return answer
다른 분의 코드를 참고하여 더 간단하게 구현한 코드이다.
여기서 핵심은 i[-1:] ! !
나는 [-1:]를 생각하지 못하고 리스트에 아무것도 없는 상태에서 [-1]을 해주면 오류가 나므로 if문을 썼는데,
[-1:]를 쓰면 리스트에 아무것도 없어도 그냥 []를 반환한다.
+ i[-1:] == [i] 에서 [i]도 리스트에 넣어준 이유는 i[-1:]가 리스트 타입이므로 i에도 리스트를 입혀주었다.
(그렇지 않으면 무조건 다르다고 나옴)
'Algorithm > Programmers' 카테고리의 다른 글
[Python] 두 정수 사이의 합 (0) | 2021.04.07 |
---|---|
[Python] K번째수 (0) | 2021.04.07 |
[Python] 2016년 (0) | 2021.04.06 |
[Python] 가운데 글자 가져오기 (0) | 2021.04.06 |
[Python] 모의고사 (0) | 2021.04.06 |