500error
[COS Pro 2급, Python] 2차 1번 : 최대한 많은 쌍의 장갑 갯수 구하기 본문
반응형
문제
왼손 장갑의 제품 번호가 들어있는 배열과 오른손 장갑의 제품 번호가 들어있는 배열이 있습니다.
제품 번호는 1부터 10 사이의 자연수입니다.
제품 번호가 같은 왼손장갑과 오른손 장갑을 합쳐 장갑 한 쌍을 만들 수 있습니다.
이때, 최대한 많은 쌍의 장갑을 만들면 최대 몇 쌍을 만들 수 있는지 구하려 합니다.
이를 위해 다음과 같이 프로그램 구조를 작성했습니다.
1. 왼손 장갑이 제품 번호별로 몇 개씩 있는지 개수를 셉니다.
2. 오른손 장갑이 제품 번호별로 몇 개씩 있는지 개수를 셉니다.
3. 각 제품 번호별로 최대한 많은 장갑 쌍을 만들면서 개수를 셉니다.
왼손 장갑의 제품 번호가 들어있는 배열 left_gloves와 left_gloves의 길이 left_gloves_len, 오른손 장갑의 제품 번호가 들어있는 배열 right_gloves와 right_gloves의 길이 right_gloves_len이 매개변수로 주어질 때, 최대 몇 개의 장갑 쌍을 만들 수 있는지 return 하도록 solution 함수를 작성하려 합니다. 이때, 위 구조를 참고하여 중복되는 부분은 func_a라는 함수로 작성했습니다.
코드가 올바르게 동작할 수 있도록 빈칸을 알맞게 채워주세요.
code
max_product_number = 10
def func_a(gloves):
counter = [0 for _ in range(max_product_number + 1)]
for x in gloves:
counter[x] += 1
return counter
def solution(left_gloves, right_gloves):
left_counter = func_a(left_gloves)
right_counter = func_a(right_gloves)
total = 0
for i in range(1, max_product_number + 1):
total += min(left_counter[i], right_counter[i])
return total
left_gloves = [2, 1, 2, 2, 4]
right_gloves = [1, 2, 2, 4, 4, 7]
ret = solution(left_gloves, right_gloves)
print('solution 함수의 반환 값은', ret, '입니다.')
반응형
'알고리즘 > 파이썬' 카테고리의 다른 글
[COS Pro 2급, Python] 2차 3번 : 짝수들의 제곱의 합 구하기 (0) | 2024.01.02 |
---|---|
[COS Pro 2급, Python] 2차 2번 : 더 많은 배수 구하기 (0) | 2024.01.02 |
[COS Pro 2급, Python] 1차 10번 : 평균 이하의 개수 구하기 (0) | 2024.01.02 |
[COS Pro 2급, Python] 1차 9번 : 중복문자 삭제하기 (0) | 2024.01.02 |
[COS Pro 2급, Python] 1차 8번 : 팰린드롬 판단하기 (0) | 2024.01.02 |
Comments