문제풀이
from collections import Counter
def solution(array):
c = Counter(array)
order = c.most_common() #리스트의 요소가 set임에 주의한다.
print(order)
maximum = order[0][1] #order[0][1]은 가장 많이 나온 요소의 횟수를 의미한다.
modes = []
for num in order:
if num[1] == maximum: #num[1]은 해당요소의 횟수를 의미한다.
modes.append(num[0]) #num[0]은 해당 요소를 의미한다.
if len(modes)>=2: #최빈값이 여러개인 경우
return -1 #-1을 반환한다.
else:
return modes[0] #최빈값이 1개인 경우 해당 요소를 반환한다.
▶ Counter메서드의 반환타입이 dictionary 형태로 반환을 주의한다.
▶ most_common()메서드의 반환타입이 각 요소를 튜플(tuple)형태로 감싸서 리스트 형태(order)로
반환을 한다.
▶ 리스트의 튜플요소 접근하는 경우에
order[1][0] : 1행에서의 튜플 (a,b)에서 a값을 의미한다.
order[1][1] : 1행에서의 튜플 (a,b)에서 b값을 의미한다.
▶ for문을 이용해서 order리스트의 튜플(tuple) 접근시
num[0] : 튜플 요소의 첫번째 값을 의미한다. →의미: 해당 숫자
num[1] : 튜플 요소의 두번째 값을 의미한다. →의미: 해당 숫자의 빈도
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
'프로그래머스(파이썬) > LV.0(파이썬)' 카테고리의 다른 글
배열 뒤집기 (0) | 2022.11.14 |
---|---|
연속된 수의 합 (0) | 2022.11.13 |
겹치는 선분의 길이 - 프로그래머스 (0) | 2022.11.13 |
평행 (0) | 2022.11.12 |
옹알이2-리펙토링 (0) | 2022.11.12 |