문제링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12906
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
Approach : 중복 숫자를 지우면서 순서를 유지하는 문제인데, 단순하게 중복을 지우는 세트로 바꾸고 리스트로 다시 만들어주면..
당연히 안된다..! 세트로 변환될 때 순서가 바뀌기 때문이다.
스택/큐를 활용하여 새로운 리스트를 만들어줘야할 것으로 보인다.
나의 코드 :
def solution(arr):
if not arr:
return arr
tmp = arr[0]
answer = [tmp]
for num in arr:
if num != tmp:
tmp = num
answer.append(tmp)
return answer
이대로 돌아가긴 하지만 -> 챗지피티한테 물어보니 tmp를 없앨 수 있다고 한다.
answer = [arr[0]] # 첫 번째 요소를 미리 추가
for num in arr[1:]: # 두 번째 요소부터 비교 시작
if num != answer[-1]: # 이전 값과 다를 때만 추가
answer.append(num)
이런식으로 수정하면 tmp 변수 사용을 줄이고 프로그램이 동작된다.
'Coding > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 전화번호 목록 (Lv.2) - (python 파이썬) (0) | 2025.03.26 |
---|---|
[프로그래머스] 다리를 지나는 트럭 (Lv.2) - (python 파이썬) (0) | 2025.03.26 |
[프로그래머스] 기능개발(Lv.2) - (python 파이썬) (0) | 2025.03.20 |
[프로그래머스] 주식가격 - (python 파이썬) (0) | 2022.04.07 |
[프로그래머스] 더 맵게 - (python 파이썬) (0) | 2022.03.07 |