프로그래밍/Python
프로그래머스_python lv0. 최빈값 구하기
O'bin
2023. 1. 7. 22:21
https://school.programmers.co.kr/learn/courses/30/lessons/120812
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
내 답안 :
결국 못풀었다
개선 답안 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
def solution(array):
#count 딕셔너리 생성해서 횟수 세기
count = {} # count dictionary 선언
for num in array: # 입력받은 array의 모든 원소를 반복
if num not in count: # array원소가 count에 없으면
count[num] = 0 # count에 그 원소값 넣고 value 0으로 설정
count[num] +=1 # array원소가 count에 있으면 value에 1 추가
# 가장 큰 빈도수 찾기
max_val = 0
for k, v in count.items(): # 딕셔너리 자료의 키와 값을 쌍으로 하여 반복
if v > max_val: # v(빈도수)가 가장 큰 값 찾기
max_val = v
max_cnt = [k for k,v in count.items() if v == max_val] # 최빈값 max_cnt리스트에 넣기
if len(max_cnt) >1 : # 최빈값이 1개 초과할 경우
return -1
else:
return max(count, key=count.get) # max함수 안의 값 중 가장 큰 값 리턴
|
cs |
리스트, 딕셔너리 등 파이썬의 배열 형태 활용하는 것 염두에 두기
배열 반복문으로 원하는 값 뽑아내는 과정 숙지하기