[プログラマー/python]ソート-H-Index



😎 私の答え

def solution(citations):
    answer = 0
    # [6, 5, 3, 1, 0]
    citations.sort(reverse=True)
    for i in range(len(citations)):
        if citations[i] >= i+1:
            answer = i+1
    return answer
  • ウィキペディアからヒントを得ました:カカ
  • 👩🏻‍🏫 別の解釈

    def solution(citations):
        citations.sort(reverse=True)
        answer = max(map(min, enumerate(citations, start=1)))
        return answer

    ▼Python文法


    map(適用する関数、適用する要素)関数

  • iterableを受信し、各要素の関数
  • に関数を適用する
    data = [1, 2, 3, 4]
    print(list(map(str, data)))	# ['1', '2', '3', '4']

    列挙関数

    data = ["하나", "둘", "셋", "넷", "다섯"]
    for idx, val in enumerate(data, start = 1):
    	print("idx:",idx,"val:",val)
       
    # idx: 1 val: 하나
    # idx: 2 val: 둘
    # idx: 3 val: 셋
    # idx: 4 val: 넷
    # idx: 5 val: 다섯
    
    data = [3, 0, 6, 1, 5]
    print(list(enumerate(data, start=1))) # [(1, 3), (2, 0), (3, 6), (4, 1), (5, 5)]
    print(list(map(min,enumerate(data, start=1)))) # [1, 0, 3, 1, 5]
    print(max(map(min,enumerate(data, start=1)))) # 5