[BoostCamp 8기 예상문제] 함수구현(python)
📌문제
💪아이디어
배열 내 숫자 개수 세기
배열 내의 숫자를 세기위하여 Counter함수를 사용하였다. 딕셔너리 자료구조처럼 key:value값으로 구성되어있으며 key는 배열내 요소의 값, value에는 해당 key가 배열 내 몇 개가 있는지 알려준다.오름차순별로 중복된 숫자의 개수세기
counter().keys()를 사용하여 오름차순으로 정렬 후 배열의 요소를 뽑을 수도 있지만 set을 사용해보았다. set은 중복된 값을 저장하지 않고 오름차순으로 요소들이 정렬되어있지않아 list로 형변환 후 정렬해줬다. 오름차순으로 정렬된 요소값들을 돌면서 counter의 value가 1이면 중복된 값이 없다고 판단하였고 1이상이면 중복된 값이 있다고 판단하였다.배열 내 중복된 값이 없는 경우
중복된 값의 갯수를 세는 배열이 비어있으면 주어진 배열에 중복된 값이 없다고 판단하여 -1을 넣어주고 반환해주었다.
🥂코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
from collections import Counter
arr=list(map(int,input().split()))
element = sorted(list(set(arr)))
arr = Counter(arr)
answer=[]
for num in element:
cnt = arr[num]
if cnt!=1:
answer.append(cnt)
if not answer:
answer.append(-1)
print(answer)
This post is licensed under CC BY 4.0 by the author.
Comments powered by Disqus.