
프로그래머스 LV1 같은 숫자는 싫어
2021, Apr 02
프로그래머스 lv1 같은 숫자는 싫어
중복 제거를 할때 set()
을 떠올리기 쉬운데 이건 순서를 정렬해버림
collections.Counter
도 정렬을 해버림.
순서를 지키면서 중복을 제거하고 싶으면 for문
을 사용
풀이
# 풀이 1
# 빈 배열을 만들어주고 0 인덱스를 넣고 뒤에꺼랑 비교해서 앞에 없으면 넣어주기
def solution(arr):
b = []
for i in range(len(arr)):
if i == 0:
b.append(arr[i])
elif arr[i] != arr[i-1]:
b.append(arr[i])
return b
if __name__ == '__main__':
arr = [1,1,3,3,0,1,1]
print(solution(arr))
# 풀이2
# 빈 배열을 만들어주고 거기에 비교해서 없으면 배열에 넣어주기
def solution(arr):
a = []
for i in arr:
if a[-1:] == [i]: continue
a.append(i)
return a
if __name__ == '__main__':
arr = [1,1,3,3,0,1,1]
print(solution(arr))
if 문의 continue는 특정 조건일때 그냥 넘기는 것. 그리고 리스트에서 a[-1:]의 리스트는 맨 뒤에 하나 빼고 전부다란 뜻.
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges