코딩 테스트/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
반응형