CodeingTestPrac/Java Coding Test
프로그래머스 야근지수 자바 [14일차](효율성 문제)
sung.hyun.1204
2023. 7. 9. 11:50
문제는 다음과 같다.
https://school.programmers.co.kr/learn/courses/30/lessons/12927
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
다음과 같은 코드는 효율성에서 통과를 하지 못했다.
public long solution(int n, int[] works) {
PriorityQueue<Integer> pq = new PriorityQueue<>(Collections.reverseOrder());;
for (int work : works) {
pq.offer(work);
}
for(int i =0 ; i< n ;i++){
int item = pq.poll();
if(item <= 0 ) return 0;
pq.offer(item -1 );
}
int answr = 0 ;
while(!pq.isEmpty()){
answr += Math.pow(pq.poll(),2);
}
return answr;
}
문제는 다음과 같이 선언했던것이다.
int answr = 0 ;
long 으로 선언 해준다 .
long answr = 0 ;
------------------------------------------------------------
효율성을 문제는 항상 자료형 선언을 가장 먼저 확인 하는게 좋다.
반환하는 값과 맞는지
자료 구조를 선언시 오버플로우가 없는지 확인하자.