키 에 따라 대열 을 재 구성 하 다.

938 단어 leetcode
1. 제목 설명
순 서 를 어 지 럽 히 는 한 무리의 사람들 이 대열 에 서 있다 고 가정 하 다.모든 사람 은 하나의 정수 대 (h, k) 로 그 중에서 h 는 이 사람의 키 이 고 k 는 이 사람 앞 에 있 으 며 키 가 h 보다 크 거나 같은 사람 이다.이 대기 열 을 다시 만 들 기 위해 알고리즘 을 만 듭 니 다.
주의: 총 인원 이 1100 명 보다 적 습 니 다.
예시
입력: [7, 0], [4, 4], [7, 1], [5, 0], [6, 1], [5, 2]]]
출력: [5, 0], [7, 0], [5, 2], [6, 1], [4, 4], [7, 1]]
2. 문제 풀이 사고방식
키 h 에 따라 큰 것 부터 작은 것 까지 정렬 하고 h 가 같 으 면 인원수 k 에 따라 작은 것 부터 큰 것 까지 정렬 합 니 다.
정렬 된 배열 에서 모든 사람의 k 를 옮 겨 다 니 며 k 에 대응 하 는 위치 에 삽입 합 니 다.
3. 코드 구현
class Solution(object):
    def reconstructQueue(self, people):
        """
        :type people: List[List[int]]
        :rtype: List[List[int]]
        """
        people = sorted(people, key=lambda x:(-x[0],x[1]))
        for index, p in enumerate(people):
        	if p[1] < index :
        		people.insert(p[1],people.pop(index))
        return people

        

좋은 웹페이지 즐겨찾기