Data house
[python] 최빈값 구하기 본문
728x90
문제
https://school.programmers.co.kr/learn/courses/30/lessons/120812
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
나의 풀이
def solution(array):
arr = [0]*1000
for i in array:
arr[i] += 1
n = arr.count(max(arr))
if n >= 2:
return -1
elif n == 1:
return arr.index(max(arr))
나는 각 숫자가 몇번 나왔는지 배열 arr를 생성해서 기록했다
n은 가장 많이 나온 원소의 갯수를 말한다.
n이 2이상이면 -1
n이 1이면 가장 많이 나온 원소를 return 한다.
인상적인 풀이
def solution(array):
while len(array) != 0:
for i, a in enumerate(set(array)):
array.remove(a)
if i == 0: return a
return -1
set을 사용해서 중복을 제거한 배열을 원본인 array에 그 원소들을 제거한다.
if i ==0: 부분에 i는 아마도 for문에서 값이 남아있다는 점을 노려서 조건문을 만들어 준것같다
'Computer Knowledge > 코테 대비 오답노트' 카테고리의 다른 글
[python] 가까이있는 수 구하기 - sort, lambda (0) | 2023.05.25 |
---|---|
[Python] 제곱수 판별 - is_integer() (2) | 2023.05.24 |
[python] 분수의 덧셈 - Fractions, math (0) | 2023.05.22 |
[python] - 그림 확대 (1) | 2023.05.20 |
[python] 세개의 구분자 - re 정규식 (0) | 2023.05.20 |