Lv0. 최빈값 구하기 (Python)
링크: 코딩테스트 연습 - 최빈값 구하기 | 프로그래머스 스쿨
내가 작성한 코드
def solution(array):
count = {}
cnt = 0
# 숫자 개수 세기
for i in array:
if i in count: # 이미 나온 숫자라면
count[i] += 1 # 개수 +1
else: # 처음 나온 숫자라면
count[i] = 1 # 개수를 1로 시작
# 가장 많이 나온 횟수 찾기
max_count = max(count.values())
# k: 실제 숫자 값, v: 해당 숫자가 array에서 나온 횟수
for k, v in count.items():
if v == max_count:
cnt += 1 # 최빈값 후보 개수 +1
mode = k # 숫자를 최빈값으로 저장
if cnt > 1: # 최빈값이 여러개면 -1, 하나면 그 값 반환
answer = -1
else:
answer = mode
return answer
새로 배운 코드
def solution(array):
while len(array) != 0: # array가 비어 있을 때까지 반복
for i, a in enumerate(set(array)):
# enumerate(): (번호표, 값) 형태
# i: 몇 번째 값인지 번호(0부터 시작)
# a: 실제 값(숫자)
array.remove(a)
# 값 a를 array에서 한 번 제거
# 각 값의 등장 횟수를 하나씩 줄이기 위함
# set(array)에 값이 1개뿐이었다면 for문은 딱 한 번만 실행되고 i는 0이 됨 -> 최빈값이 하나뿐이라는 뜻으로 판단
if i == 0: return a
return -1'코딩테스트' 카테고리의 다른 글
| [25.12.19 코테(Python/MySQL)]-행렬의 덧셈&평균 일일 대여 요금 구하기 (5) | 2025.12.19 |
|---|---|
| [25.12.18 코테(Python)]-문자열을 정수로 바꾸기 (0) | 2025.12.18 |
| [25.12.16 코테(Python)]-피타고라스의 정리&삼총사 (0) | 2025.12.16 |
| [25.12.15 코테(Python)]-코드 처리하기 (0) | 2025.12.15 |
| [25.12.12 코테(Python)]-아이스 아메리카노&핸드폰 번호 가리기&영어 끝말잇기 (0) | 2025.12.12 |