[COS PRO 2급-Python] 최대한 많은 쌍의 장갑 갯수 구하기

Sunhee·2023년 4월 12일

COS PRO - Python 2급

목록 보기
11/44
post-thumbnail

[COS PRO 2급-Python] 최대한 많은 쌍의 장갑 갯수 구하기

문제 설명

왼손 장갑의 제품 번호가 들어있는 배열과 오른손 장갑의 제품 번호가 들어있는 배열이 있습니다.
제품 번호는 1부터 10 사이의 자연수입니다.
제품 번호가 같은 왼손장갑과 오른손 장갑을 합쳐 장갑 한쌍을 만들 수 있습니다.
이때, 최대한 많은 쌍의 장갑을 만들면 최대 몇 쌍을 만들 수 있는지 구하려 합니다.
이를 위해 다음과 같이 프로그램 구조를 작성했습니다.

  1. 왼손 장갑이 제품 번호별로 몇 개씩 있는지 개수를 셉니다.
  2. 오른손 장갑이 제품 번호별로 몇 개씩 있는지 개수를 셉니다.
  3. 각 제품 변호별로 최대한 많은 장갑 쌍을 만들면서 개수를 셉니다.

왼손 장갑의 제품 번호가 들어있는 배열 left_gloves와 left_gloves의 길이 left_gloves_len, 오른손 장갑의 제품 번호가 들어있는 배열 right_gloves와 right_gloves의 길이 right_gloves의 길이 right_gloves_len이 매개변수로 주어질 때, 최대 몇 개의 장갑 쌍을 만들 수 있는지 return 하도록 solution 함수를 작성하려 합니다. 이때, 위 구조를 참고하여 중복되는 부분은 func_a라는 함수로 작성했습니다. 코드가 올바르게 동작할 수 있도록 빈칸을 알맞게 채워주세요.



매개변수 설명

왼손 장갑의 제품 번호가 들어있는 배열 left_gloves와 left_gloves의 길이 left_gloves_len, 오른손 장갑의 제품 번호가 들어있는 배열 right_gloves와 right_gloves의 길이 right_gloves_len이 solution 함수의 매개변수로 주어집니다.

  • left_gloves_len은 1 이상 100 이하의 자연수입니다.
  • left_gloves의 우너소는 1 이상 10 이하의 자연수입니다.
  • right_gloves_len은 1 이상 100 이하의 자연수 입니다.
  • right_gloves의 원소는 1 이상 10 이하의 자연수입니다.



return 값 설명

왼손과 오른손의 제품 번호가 같은 장갑 끼리 한 쌍을 만들 때, 최대 몇 개의 쌍을 만들 수 있는지 개수를 return 해주세요.


예시



알고리즘 구상

▶ counter 배열에 x가 나올 때 마다 +1을 해주자!



내가 쓴 코드!


def func_a(gloves):
	counter = [0 for _ in range(max_product_number + 1)]
	for x in gloves:
		counter[x] += 1
	return counter



느낀점

아직 배우기 시작한지 얼마 안되어서 모든 코드를 보면서 분석하지 말고
중요한 부분에 초점을 맞추어서 문제를 풀어보자!


0개의 댓글