[프로그래머스/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']

enumerate 함수

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
     

좋은 웹페이지 즐겨찾기