개발계발
배열에서 중복을 제거하는 법 본문
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))
위 코드 잘 기억하자
'알고리즘' 카테고리의 다른 글
프로그래머스 - 3진법 뒤집기(68935) (0) | 2024.05.17 |
---|---|
프로그래머스 - 큰 수 만들기(42883) (0) | 2024.05.16 |
프로그래머스 - 기사단원의 무기(136798) (0) | 2024.05.16 |
프로그래머스 - 행렬의 곱셈(12949) (1) | 2024.05.03 |
프로그래머스 - 거리두기 확인하기(81302) (1) | 2024.05.02 |