반응형
https://school.programmers.co.kr/learn/courses/30/lessons/181858
간단 구현 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
1. 정답 변수 answer선언 후 빈 배열로 초기화합니다.2. dict를 선언 후 빈 dictionary로 초기화합니다.
📔 풀이과정
1. arr의 원소를 for loop로 순회하며 다음을 진행합니다.
1-1. answer의 길이가 k이상이라면 break합니다.
1-2. 숫자가 나온 빈도수를 dict로 부터 구해서 한 번도 나온적 없다면 answer에 현재 원소를 추가합니다.
1-3. 빈도수를 갱신해줍니다.
2. answer의 길이가 k미만이라면 k - answer길이만큼 -1을 answer 뒤에 extend해줍니다.
📔 정답 출력 | 반환
answer를 반환합니다.
📕 Code
📔 Python3
def solution(arr, k):
answer = []
dict = {}
for a in arr:
if len(answer) >= k:
break
frequency = dict.get(a,0)
if frequency == 0:
answer.append(a)
dict[a] = frequency + 1
if len(answer) < k:
answer.extend([-1] * (k - len(answer)))
return answer
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'Algorithm > Implementation' 카테고리의 다른 글
(Python3) - 프로그래머스(코딩 기초 트레이닝) : 배열 비교하기 (1) | 2024.10.20 |
---|---|
(Python3) - 프로그래머스(코딩 기초 트레이닝) : 배열의 길이를 2의 거듭제곱으로 만들기 (0) | 2024.10.20 |
(Python3) - 프로그래머스(코딩 기초 트레이닝) : 배열 만들기 6 (0) | 2024.10.19 |
(Python3) - 프로그래머스(코딩 기초 트레이닝) : 빈 배열에 추가, 삭제하기 (0) | 2024.10.19 |
(Python3) - 프로그래머스(코딩 기초 트레이닝) : 배열의 원소만큼 추가하기 (0) | 2024.10.19 |