[1스4코2파] # 241. LeetCode 973. K Closest Points to Origin

gunny·2023년 9월 1일
0

코딩테스트

목록 보기
240/530

[1스4코2파] 1명의 스위프트 개발자와 4명의 코틀린 개발자, 2명의 파이썬 개발자코딩 테스트 서막 : 1스4코1파

Rule :

하루에 1문제씩 풀기.
한 문제당 30분씩은 고민하기.
왜 그렇게 풀었는지 공유하기.
하루라도 놓친다면 벌금은 1,000원
백준 플래티넘, 프로그래머스 4단계, 개발자 탈퇴 시 모임 탈퇴 가능

START :

[3코1파] 2023.01.04~ (241차)
[4코1파] 2023.01.13~ (233일차)
[1스4코1파] 2023.04.12~ (144일차)
[1스4코2파] 2023.05.03 ~ (122일차)

Today :

2023.09.01 [241일차]
LeetCode 973. K Closest Points to Origin
https://leetcode.com/problems/k-closest-points-to-origin/

973. K Closest Points to Origin

문제 설명

2차원 좌표평면으로 points가 주어질 때, 해당 리스트 i번째 원소는 x와 y의 좌표 xi, yi를 나타낸다.
여기서 정수 k 값이 주어질 때, 원점으로부터 가까운 k개의 points 를 return 함
각 좌표의 거리는 유클리디언 거리로 산정함

문제 풀이 방법

points 배열에 이는 각 좌표의 거리를 유클리디언거리로 구한 뒤에, 해당 값을 dist(거리), x, y 로 넣고 해당 자료구조를 minheap으로 구현한다. 그리고 k개만큼 minHeap에 있는 값을 pop 하면서 x,y 값만 넣어주고 return 하면 됨 굿

내 코드

 class Solution:
    def kClosest(self, points: List[List[int]], k: int) -> List[List[int]]:
        minHeap = []
        ans = []
        for x, y in points:
            dist = (x**2) + (y**2)
            minHeap.append([dist, x, y])
        heapq.heapify(minHeap)

        while k >0:
            dist, x, y = heapq.heappop(minHeap)
            ans.append([x,y])
            k -= 1

        return ans

증빙

여담

누가 봐줄 때까지 하는 개그이다.
data structure 중에서 가장 힙한 structure는 뭔줄 알아?
바로 heap이야 왜냐? heappop 하니까~ ㅋ

profile
꿈꾸는 것도 개발처럼 깊게

0개의 댓글