반응형
# 문제 링크
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
# 풀이
## 풀이 1. 리스트 2개로
T = int(input())
for i in range(1, T+1):
_ = input()
grades = list(map(int, input().split()))
freq = [0] * 101 # 점수는 0 ~ 100점까지 있으니까
mode = 0 # 최빈값
for grade in grades:
freq[grade] += 1 # 현재점수의 빈도상승
if freq[grade] >= freq[mode]:
mode = grade
print(f"#{i} {mode}")
- 각 점수에 대한 빈도수를 저장할 리스트(freq)를 따로 생성
- 리스트 for문 돌면서 해당 점수 나오면 freq[해당 점수] += 1
- 최빈값 변수를 mode로 정해두고, freq가 더 높으면 변경하는 식으로 ..
- 즉 빈도수를 구하는 리스트를 하나 더 만들어준거지 !!!
## 풀이 2. 딕셔너리로
T = int(input())
for test_case in range(1, T+1):
_ = int(input())
grades = list(map(int, input().split()))
dic = {}
for grade in grades:
if grade in dic:
dic[grade] += 1
else: # else를 해줘야 오류가 안 나네 ..!!
dic[grade] = 0
mode = max(dic, key=dic.get)
print(f"#{_} {mode}")
else문을 안 넣어주면 오류가 났다.. 0으로 안 채워주면 딕셔너리 그 부분이 비어 있어서 그런가 봄.
딕셔너리에서 최대 value를 가지는 key 값을 찾는 방법을 새롭게 알게 됐다.
## 새롭게 알게 된 지식 💡
dic에서 최대 value를 가지는 key 값 찾기
max_value_key = max(dic, key=dic.get)
dic에서 key, value 한꺼번에 출력하기
for k, v in dic.items():
print(k, v)
반응형
'Algorithm > SW Expert Academy' 카테고리의 다른 글
[SWEA/d2] 1945. 간단한 소인수분해 (Python) _딕셔너리 활용 팁 (0) | 2023.11.08 |
---|---|
[SWEA/d2] 1948. 날짜 계산기 (Python) (0) | 2023.11.07 |
[SWEA/d2] 1940. 가랏! RC카! (Python) (0) | 2023.11.07 |
[SWEA/d2] 1926. 간단한 369 게임 (Python) (0) | 2023.11.07 |
[SWEA/d2] 1984. 중간 평균값 구하기 (Python) (0) | 2023.11.07 |