코딩 테스트/COS PRO Python 2급

[COS PRO Python 기출 - 1차(빈칸)] 4. 등장하는 가장 많은 수와 적은 수 구하기

알밤바 2022. 7. 14. 09:21
728x90
반응형

 

goorm

구름은 클라우드 기술을 이용하여 누구나 코딩을 배우고, 실력을 평가하고, 소프트웨어를 개발할 수 있는 클라우드 소프트웨어 생태계입니다.

goorm.co



코드

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, "입니다.")

 

풀이

각 함수가 어떠한 단계를 나타내는지 유심히 살펴볼 필요가 있다.

- func_b(arr) : ret = 0과 x를 비교한 후, x가 크면 ret을 x로 대체하는 함수이다.

                            → ret은 가장 큰 수로 계속 대체되며, 결국은 가장 큰 수가 됨

- func_c(arr) : ret = 1001 (가장 큰 수)와 x를 비교한 후, x가 0이 아니거나 x가 ret보다 작을 경우, ret을 x로 대체하는 함수이다.

                            → ret은 점차 작은 수로 대체되며, 결국은 가장 작은 수가 됨

728x90
반응형