-
[정렬] K번째수 / 가장 큰 수 / H-Index알고리즘/프로그래머스 2021. 9. 5. 14:44
https://programmers.co.kr/learn/courses/30/lessons/42748
코딩테스트 연습 - K번째수
[1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3]
programmers.co.kr
파이썬으로 매우 쉽게 풀 수 있다.
def solution(array, commands): answer = [sorted(array[i[0]-1:i[1]])[i[2]-1] for i in commands] return answer
https://programmers.co.kr/learn/courses/30/lessons/42746
코딩테스트 연습 - 가장 큰 수
0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰
programmers.co.kr
처음에 아래와 같이 모든 케이스를 구해서 하려했더니, 시간초과가 나왔다.
from itertools import permutations def solution(numbers): return max(map(''.join, permutations(map(str, numbers))))
전제조건에 numbers의 원소는 1000이하이므로, sorted와 lambda을 이용해서, 가능하다.
x*3은 비교시, 비교 문자를 3번 반복하는 의미이다.
- ex ) '6'*3 = '666'
문자로 비교하기 때문에, 문자열의 첫번째의 인덱스 값으로 비교한다.
* 자꾸 테스트 케이스 한나를 통과 못했는데, answer가 '000'일 경우 였다. 이를 처리하기위해 아래 if문을 추가했다.
def solution(numbers): answer = ''.join(sorted(list(map(str, numbers)), key = lambda x : x*3, reverse = True)) return "0" if int(answer)==0 else answer
https://programmers.co.kr/learn/courses/30/lessons/42747
코딩테스트 연습 - H-Index
H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표
programmers.co.kr
H-Index : 전체 논문을 피인용 순으로 정렬한 후, 논문의 순번과 피인용 횟수를 비교하여 피인용 횟수가 논문의 순번보다 작아지기 시작하는 직전의 순번이 연구자의 H-Index가 된다.
def solution(citations): citations = sorted(citations, reverse=True) for i in range(len(citations)): if i>=citations[i]: return i return len(citations)
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[위클리 챌린지] 6주차 (0) 2021.09.11 [위클리 챌린지] 5주차 (0) 2021.09.11 [해시] 완주하지 못한 선수 / 전화번호 목록 / 위장 (0) 2021.09.04 [해시] 베스트앨범 (0) 2021.09.04 [위클리 챌린지] 3주차 (0) 2021.08.29