본문 바로가기
Python/알고리즘

[COS PRO 2급 #6-9] 난 양말색이 달라도 잘 신는 착한 어린이

by 포푸리 (POPOOLY) 2023. 2. 10.
반응형

문제설명

다양한 색을 가진 양말 중 같은 색을 가진 양말을 2개씩 묶어 한 쌍을 만드려고 합니다.

예를 들어, 가지고 있는 양말의 색깔이 [빨강, 파랑, 빨강, 노랑, 파랑, 빨강] 이라면 아래 그림과 같이 2쌍을 만들 수 있습니다.

 

양말 색을 숫자로 표현해서 담은 리스트 socks가 매개변수로 주어질 때, 양말을 몇 쌍 만들 수 있는지 return 하도록 solution 함수를 작성했습니다. 그러나, 코드 일부분이 잘못되어있기 때문에, 몇몇 입력에 대해서는 올바르게 동작하지 않습니다. 주어진 코드에서 _**한 줄**_만 변경해서 모든 입력에 대해 올바르게 동작하도록 수정하세요.

매개변수 설명

양말 색을 숫자로 표현해서 담은 리스트 socks가 solution 함수의 매개변수로 주어집니다.
* 양말 색은 0 보다 크거나 같고 10 보다 작은 정수로 표현합니다.
* 양말 수는 1개 이상 100개 이하입니다.

return 값 설명

양말을 몇 쌍 만들 수 있는지 return 합니다.

예시

| socks           | return |
|--------------------|--------|
| [1, 2, 1, 3, 2, 1] | 2   |

예시설명

문제에 나온 예와 같습니다.

문제 코드

def solution(socks):
    answer = 0
    count = [0 for _ in range(10)]
    for s in socks:
        count[s] += 1
    for c in count:
        answer += (c % 2)
    return answer

풀이

def solution(socks):
    answer = 0
    count = [0 for _ in range(10)]
    
    # 색상별 개수 구하기
    for s in socks:
        count[s] += 1
     
    # 쌍 개수 구하기
    for c in count:
        answer += (c // 2)
    return answer

댓글