반응형
Notice
Recent Posts
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

500error

[COS Pro 2급, Python] 1차 4번 : 등장하는 가장 많은 수와 적은수 구하기 본문

알고리즘/파이썬

[COS Pro 2급, Python] 1차 4번 : 등장하는 가장 많은 수와 적은수 구하기

Internal Server Error 2024. 1. 2. 20:13
반응형

문제

자연수가 들어있는 배열이 있습니다. 이 배열에서 가장 많이 등장하는 숫자의 개수는 가장 적게 등장하는 숫자 개수의 몇 배인지 구하려 합니다. 이를 위해 다음과 같이 간단히 프로그램 구조를 작성했습니다.
  • 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, "입니다.")
반응형
Comments