개발이야기/[Python]HackerRank

[Hackerrank/python]Sales by Match

원효대사해골물 2020. 9. 24. 00:55

Alex works at a clothing store. There is a large pile of socks that must be paired by color for sale. Given an array of integers representing the color of each sock, determine how many pairs of socks with matching colors there are.

For example, there are n=7 socks with colors ar=[1,2,1,2,1,3,2]. There is one pair of color  and one of color . There are three odd socks left, one of each color. The number of pairs is 2.

 

알렉스는 옷을 판다. 팔기 위해서 동이한 색으로 2짝을 맞춰야 한다. 숫자가 색을 나타낼 때 해당 숫자조합으로 얼마나 많은 양말쌍을 만들 수 있는지 구하라.

 

예제로 7개 양말이 있을때. [1,2,1,2,1,3,2] 에서 1,1 / 2,2 로 2개 짝이 나온다.

 

 

Sample Input

 

9

10 20 20 10 10 30 50 10 20

 

Sample Output

 

3

 

Explanation

 

 

 

Untitled1

최종 제출 코드와 코드별 설명

In [ ]:
#!/bin/python3

import math
import os
import random
import re
import sys

# Complete the sockMerchant function below.
def sockMerchant(n, ar):

    ############## step 1 ################################
    # 초기 dic 설정
    dic = {}
    for i in ar:
        # dic에 i라는 key가 있으면 value에 1을 더해줌
        try :
            dic[i]=dic[i]+1
        # dic에 i라는 key가 없으면 만들어주고 value에 1을 넣어줌
        except :
            dic[i]=1
        # print(dic) # debug
    ############## step 2 ################################
    # pair 개수
    a = 0
    for j in dic:
        # dic의 key가 양말 색 / value가 색의 개수
        # 각 양말 색의 개수를 2로 나눠 몫을 가져와 합한다.
        a = a+dic[j]//2  # value//2 : 몫 , value%%2 : 나머지
        
    return a

if __name__ == '__main__':
    fptr = open(os.environ['OUTPUT_PATH'], 'w')

    n = int(input())

    ar = list(map(int, input().rstrip().split()))

    result = sockMerchant(n, ar)

    fptr.write(str(result) + '\n')

    fptr.close()

Dictionary의 간단한 활용 방법

In [1]:
# dictionary 의 key와 value add 방법
dic = {} # 빈 dic 생성 
dic[10] = 1 # key는 10 / value는 1 
print(dic)
{10: 1}

 

'개발이야기 > [Python]HackerRank' 카테고리의 다른 글

[Hackerrank/python]Save the Prisoner  (0) 2020.10.15