강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

hhm님의 프로필 이미지
hhm

작성한 질문수

정말 쉽게 풀어보는 코딩 테스트 top 기본 문제 (with 자바)

원점에 가장 가까운 지점_문제해설

PriorityQueue 말고 다른 방법

작성

·

191

4

solve() 메소드에서 파라미터로 받은 list를
Arrays.sort(list, (a, b) -> ((a[0]*a[0])+(a[1]*a[1]))-((b[0]*b[0])+(b[1]*b[1])));
이와 같이 sorting하고, sorting된 list를 return 해줘서

최종적으로 main()에서 for문을 돌려 k개만 print하도록 풀어봤는데,
PriorityQueue를 사용하는게 이 문제에선 더 좋은 방법일까요?

답변 1

2

안녕하세요.

아주 좋은 질문입니다. 이렇게 질문하면서 압박면접을 하기 쉬운 문제죠..

1. 이문제는 PriorityQueue를 이용해서 푸는게 가장 쉬운거고

2. 다른 방법으로는 원점에서 부터 거리를 구한값들을 소팅하는거죠.

가장단순하죠. 소팅에는 무슨 소팅이 있는지 물어 볼 수 있습니다.

퀵소트, 선택정렬, 버블정렬..머지소팅 각각에 빅오값을 비교해보라 할 수 있습니다.

소팅에 기본기를 물어보면서 압박면접도 할 수 있고요..

소팅을 철저히 분석해보시죠 이번기회엥

저는 퀵소트를 좋아합니다. 빅오 시간복잡도 O(nlogn) 인데 부연 설명해주고..

즐코딩하세요~

hhm님의 프로필 이미지
hhm

작성한 질문수

질문하기