Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Tags
more
Archives
Today
Total
관리 메뉴

개발계발

배열에서 중복을 제거하는 법 본문

알고리즘

배열에서 중복을 제거하는 법

Ju_Nik_E 2024. 6. 13. 22:59

https://school.programmers.co.kr/learn/courses/30/lessons/120852

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

위 문제를 풀다가 answer를 반환할 때 중복을 제거하는 방법에서 막힘

 

원래 내가 제출한 코드는

def solution(n):
    answer = []
    divide_num = 2
    while divide_num <= n:
        if n % divide_num == 0:
            answer.append(divide_num)
            n = n / divide_num
        else:
            divide_num += 1
    return list(set(answer))

 

위와 같았는데, set은 중복은 제거하나, 순서를 보장하지 않아서 틀렸다고 나옴.

 

그래서 dict을 써서 아래와 같이 중복을 제거하고 순서도 보장해주는 아래와 같이 변경함.

def solution(n):
    answer = []
    divide_num = 2
    while divide_num <= n:
        if n % divide_num == 0:
            answer.append(divide_num)
            n = n / divide_num
        else:
            divide_num += 1
    return list(dict.fromkeys(answer))

결론

list(dict.fromkeys(answer))

위 코드 잘 기억하자