키 에 따라 대열 을 재 구성 하 다.
938 단어 leetcode
순 서 를 어 지 럽 히 는 한 무리의 사람들 이 대열 에 서 있다 고 가정 하 다.모든 사람 은 하나의 정수 대 (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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
0부터 시작하는 LeetCode Day8 「1302. Deepest Leaves Sum」해외에서는 엔지니어의 면접에 있어서 코딩 테스트라고 하는 것이 행해지는 것 같고, 많은 경우, 특정의 함수나 클래스를 주제에 따라 실장한다고 하는 것이 메인이다. 빠른 이야기가 본고장에서도 행해지고 있는 것 같은 코...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.