반응형
안녕하세요.
강렬한 스포트라이트 입니다!
하기의 문제를 Python 언어를 사용하여 구현하고자 합니다.
<문제 설명>
최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다.
<제한 사항>
0 < array의 길이 < 100
0 ≤ array의 원소 < 1000
<입출력 예>
array | result |
[1, 2, 3, 3, 3, 4] | 3 |
[1, 1, 2, 2] | -1 |
[1] | 1 |
1) set(), count(), max()함수를 사용하지 않고 구현한 코드입니다.
def solution(array):
#array 중복 제거하기(set함수 사용하지 않음)
a=[]
for n in array:
if n not in a:
a.append(n)
#a배열 각 원소의 갯수 구하기(count함수 사용하지 않음)
cnt=[0 for c in range(len(a))]
for i in range(len(a)):
for j in range(len(array)):
if a[i] == array[j]:
cnt[i]+=1
#cnt 최댓값 구하기(max함수 사용하지 않음)
big=cnt[0]
for l in range(1, len(cnt)):
if big < cnt[l]:
big=cnt[l]
#big 값의 갯수 확인하기(count함수 사용하지 않음)
big_cnt=0
for m in range(len(cnt)):
if cnt[m] == big:
big_cnt+=1
#최빈값 반환, 여러개면 -1 반환
if big_cnt == 1:
return a[cnt.index(big)]
else:
return -1
2) set(), count(), max() 함수를 모두 사용하여 구현한 코드입니다.
def solution(array):
set_array=list(set(array))
cnt=[]
for i in range(len(set_array)):
cnt.append(array.count(set_array[i]))
if cnt.count(max(cnt))==1:
return set_array[cnt.index(max(cnt))]
else:
return -1
해보시고 문의사항이 있으시면 댓글로 남겨주세요.´◡`
감사합니다!
반응형
SMALL
'PS > programmers' 카테고리의 다른 글
[Lv. 0] 외계행성의 나이(Python) (0) | 2023.02.20 |
---|---|
[Lv. 0] 짝수 홀수 개수(Python) (2) | 2023.02.17 |
[Lv. 0] 문자열 뒤집기(Python) (0) | 2023.02.16 |
[Lv. 0] 머쓱이보다 키 큰 사람(Python) (0) | 2023.02.15 |
[Lv. 0] 분수의 덧셈 (Python) (1) | 2023.02.09 |