#1. 문제 해결
1) 여러 점수들이 들어 있는 리스트를 만든다
2) scores 리스트 내에 가장 많이 들어 있는 점수가 최빈값이고 이 값을 찾아야 한다
3) scores 리스트에서 가장 큰 점수 +1만큼의 원소를 가진 리스트 indexes를 만든다
4) for 반복문으로 scores 리스트 내의 점수들을 하나씩 indexes 리스트내에 1씩 증가시켜 카운트 한다.
(scores의 scores[0]=90점을 indexes의 indexes[90]=1로 카운트)
5) scores 리스트 전체 점수들에 반복한다.
6) 새로운 for 반복문으로 indexes 리스트 내에 들어 있는 원소들 중 최대값을 찾는다.
7) indexes[i]=최대값일 경우, i=최빈 점수, indexes[i]는 빈도가 된다.
#2. 코드 짜기
# 최빈값 알고리즘 만들기
scores=[90, 85, 100, 100, 70, 60, 90, 90, 85, 90]
indexes=[0]*(100+1) #scores 리스트 내 원소 중 가장 큰 숫자 +1; 모든 원소들은 0으로 설정
for i in range(0,len(scores)):
indexes[scores[i]]=indexes[scores[i]]+1
import sys
max=-sys.maxsize
for i in range(len(indexes)):
if indexes[i]>max:
max=indexes[i]
print(f"최빈값은 {i}이며 {max}번 검색되었습니다.")
#3. 실행
'Python notes > Others' 카테고리의 다른 글
파이썬) rjust 함수 사용법 (오른쪽 정렬해서 출력하기) (0) | 2021.03.26 |
---|---|
파이썬) class 만들기 (+class? method? object와 instance?) (0) | 2021.03.26 |
파이썬 예제코드) 정수 리스트 2개를 병합하기 (+Merge algorithm) (0) | 2021.03.25 |
파이썬 예제코드) binary search 방법으로 검색 알고리즘 만들기 (0) | 2021.03.25 |
파이썬 예제코드) 오름차순, 내림차순으로 리스트 내 숫자 재배열하기 (0) | 2021.03.23 |
댓글