목차
- K번째수
- 가장 큰 수
- H-index
1. K번째 수
def solution(array, commands):
result = []
for i in commands:
a, b, c = i
result.append(sorted(array[a-1:b])[c-1])
return result
print(solution([1, 5, 2, 6, 3, 7, 4], [[2, 5, 3], [4, 4, 1], [1, 7, 3]]))
2. 가장 큰 수
def solution(numbers):
numbers = sorted(map(str, numbers),
key=lambda x: (x*4)[:4], reverse=True)
if numbers[0] == "0":
answer = '0'
else:
answer = "".join(numbers)
return answer
print(solution([3, 30, 34, 5, 9]))
- numbers의 원소는 0이상 1000이하 이므로 첫 줄의 lambda x: (x*4)[:4]가 가장 중요하다.
3. H-index
- 어떤 과학자의 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고, 나머지 논문이 h번 이하로 인용되었다면, h가 이 과학자의 H-index이다.
def solution(citations):
for i, x in enumerate(sorted(citations)):
if x >= len(citations)-i:
return len(citations)-i
return 0
print(solution([3, 0, 6, 1, 5]))
# sorted [0,1,3,5,6]
참고자료 [프로그래머스]https://programmers.co.kr/learn/challenges