효울성까지 체크하는 문제가 나왔습니다!
효율성이 시간 복잡도로 측정한다는 말을 얼핏 들은거 이외에는 효율성에 대해 잘 모르겠습니다..ㅠ.ㅠ
같은 숫자는 싫어는 숫자 listt arr에서 연속된 숫자를 제외하고 모든 숫자를 return 하는 문제입니다.
따라서 첫번째 고려사항은 중복된 숫자가 나오지 않게 막아줘야 했습니다.
이를 위해서 저는 if else문을 통해 조건문을 이용했습니다.
if문으로 맨 마지막에 추가된(제일 최근에 추가된)숫자가 지금 추가되려는 숫자와 같다면 pass
그렇지 않다면(제일 최근에 추가된 숫자와 다르다면) 지금 숫자(i)를 추가하도록 했습니다.
하지만 제일 처음 실행했을때, return하는 answer의 리스트가 비어있었기 때문에
answer[-1]이 에러가 났습니다.
따라서 제일 처음 숫자는 무조건 추가해야겠다라고 생각하였습니다.
따라서 len(answer) >= 1 조건문을 달고 이 조건을 만족하면 위의 방법을 사용하였고,
answer의 길이가 1 미만, 다시말해서 answer리스트가 비어있을 경우에는 else를 통해 숫자를 추가했습니다.
def solution(arr):
answer = []
for i in arr:
if len(answer) >=1:
if i == answer[-1] :
pass
else:
answer.append(i)
else :
answer.append(i)
return answer
print(solution([1,1,3,3,0,1,1]))
print(solution([3,4,4,2,3,5,7,8,96,5,4,7,8,8,8,4,5,2]))
[out]
[1, 3, 0, 1]
[3, 4, 2, 3, 5, 7, 8, 96, 5, 4, 7, 8, 4, 5, 2]
'2021 > 코딩테스트' 카테고리의 다른 글
[프로그래머스] Lv.1 - 문자열 내 마음대로 정렬하기 (0) | 2020.11.26 |
---|---|
[프로그래머스] Lv.1 - 문자열 다루기 기본_파이썬 (0) | 2020.11.26 |
[프로그래머스] Lv.1 - 두 정수 사이의 합_파이썬 (0) | 2020.11.25 |
[프로그래머스] Lv.1 - 문자열 내 p와 y의 개수_파이썬 (0) | 2020.11.25 |
[프로그래머스] Lv1 - 3진법 뒤집기_파이썬 (0) | 2020.11.24 |
댓글