500error
[COS Pro 2급, Python] 1차 4번 : 등장하는 가장 많은 수와 적은수 구하기 본문
반응형
문제
자연수가 들어있는 배열이 있습니다. 이 배열에서 가장 많이 등장하는 숫자의 개수는 가장 적게 등장하는 숫자 개수의 몇 배인지 구하려 합니다. 이를 위해 다음과 같이 간단히 프로그램 구조를 작성했습니다.
- 1단계. 배열에 들어있는 각 자연수의 개수를 셉니다.
- 2단계. 가장 많이 등장하는 수의 개수를 구합니다.
- 3단계. 가장 적게 등장하는 수의 개수를 구합니다.
- 4단계. 가장 많이 등장하는 수가 가장 적게 등장하는 수보다 몇 배 더 많은지 구합니다.
단, 몇 배 더 많은지 구할 때는 소수 부분은 버리고 정수 부분만 구하면 됩니다.
자연수가 들어있는 배열 arr와 arr의 길이 arrlen이 매개변수로 주어질 때, 가장 많이 등장하는 숫자가 가장 적게 등장하는숫자보다 몇 배 더 많은지 return 하도록 solution 함수를 작성하려 합니다. 위 구조를 참고하여 코드가 올바르게 동작할 수 있도록 빈칸에 주어진 funca, funcb, funcc 함수와 매개변수를 알맞게 채워주세요.
code
def func_a(arr):
counter = [0 for _ in range(1001)]
for x in arr:
counter[x] += 1
return counter
def func_b(arr):
ret = 0
for x in arr:
if ret < x:
ret = x
return ret
def func_c(arr):
INF = 1001
ret = INF
for x in arr:
if x != 0 and ret > x:
ret = x
return ret
def solution(arr):
counter = func_a(arr)
max_cnt = func_b(counter)
min_cnt = func_c(counter)
return max_cnt // min_cnt
arr = [1, 2, 3, 3, 1, 3, 3, 2, 3, 2]
ret = solution(arr)
print("solution 함수의 반환 값은", ret, "입니다.")
반응형
'알고리즘 > 파이썬' 카테고리의 다른 글
[COS Pro 2급, Python] 1차 6번 : 369 게임 박수의 갯수 구하기 (1) | 2024.01.02 |
---|---|
[COS Pro 2급, Python] 1차 5번 : 배열의 순서 뒤집기 (0) | 2024.01.02 |
[COS Pro 2급, Python] 1차 3번 : 시작 날짜와 끝 날짜의 사이 날짜구하기 (0) | 2024.01.02 |
[COS Pro 2급, Python] 1차 2번 : 쇼핑몰 등급별 할인 금액구하기 (1) | 2024.01.02 |
[COS Pro 2급, Python] 1차 1번 : 단체 티셔츠 주문하기 (0) | 2024.01.02 |
Comments