Coding/프로그래머스

[프로그래머스] 같은 숫자는 싫어(Lv.1) - (python 파이썬)

Coding Kitsune 2025. 3. 20. 15:54

문제링크 : 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 변수 사용을 줄이고 프로그램이 동작된다.