https://school.programmers.co.kr/learn/courses/30/lessons/42889
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
첫번째 시도
import java.util.*;
class Solution {
public int[] solution(int N, int[] stages) {
int pn = stages.length;
double[] fail = new double[N];
for(int i = 1; i < N+1; i++){
double cnt1 = 0, cnt2 = 0;
for(int j = 0; j < stages.length; j++){
if(stages[j] == i) cnt1++;
if(stages[j] >= i) cnt2++;
}
fail[i-1] = cnt1 / cnt2;
}
int[] answer = new int[N];
int j = 0;
while(j < N){
double max = 0;
for(int i = 0; i < fail.length; i++){
if(fail[i] > max) max = fail[i];
}
for(int i = 0; i < fail.length; i++){
if(max == fail[i]){
answer[j] = i+1;
j++;
fail[i] = -1;
}
}
}
return answer;
}
}
시간초과로 실패 ㅠㅠ 코드를 어떻게 바꿔야 할까...?
'프로그래머스 > Lv.1' 카테고리의 다른 글
Lv.1 음양 더하기 (0) | 2022.07.04 |
---|---|
Lv.1 내적 (0) | 2022.07.04 |
Lv.1 폰켓몬 (0) | 2022.07.01 |
Lv.1 [1차] 비밀지도 (0) | 2022.07.01 |
Lv.1 약수의 개수와 덧셈 (0) | 2022.06.29 |