프로그래머스(https://programmers.co.kr/learn/courses/30/lessons/42889)
자바 초급 문제의 2019 KAKAO BLIND RECRUITMENT안의 실패율이다.
로직을 짜는데에 2시간 2시간 가량을 사용한 듯하다. 스스로 느끼기에 생각보다 굉장히 난해한 듯 하다.
일단 아침시간을 당겨야하기에..일단 오늘은 일찍 잠에들고..내일 승부수를 던져봐야겠다.
출력 값에도 문제가 있기에 로직을 엎고 다시시작해봐야 할 듯 하다.
괜시리 떨리기도하고 흥미로운 마음이 잔잔하게 느껴지는 것 같다. 그만큼 도전하고 싶어진다.
내일 다시 도전해보겠다! :)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
package _2019KAKAO_BLIND_RECRUITMENT_실패율;
import java.util.*;
public class Exam {
public int[] solution(int N, int[] stages) {
int[] answer = {};
Stack<Double> stack = new Stack<>();//임시로 넣어줄 실패율 확인 스택리스트
double[] stageFailRate = new double[N];//스테이지당 실패율을 담을 배열
int[] stageNum = new int[N];//N 만큼의 배열을 만들고 스테이지 더해주려고 함.
int challUser =0; //도전자 수
int failUser = 0; //실패자 수
double failRate = 0;//실패율
int firstStage =N-(N-1);//첫번째 스테이지 즉 1.
for(int i =0 ; i<N; i++) {
stageNum[i] = firstStage; //첫배열 부터 1을 더하고
firstStage++;//1씩 증가시켜 다음 스테이지가 저장 되게 한다.
}//여기까지하면 stageNum에 스테이지 순번이 1~N까지 넣어졌을 것이다.
Arrays.sort(stages);//일단 작은 스테이지부터 올라갈 생각임.
for(int i =0; i<stageNum.length; i++) { // i가 스테이지 순번만큼 돌때에
for(int j =0; j<stages.length; j++) {//j의 플레이어의 모든 스테이지 상황을 파악
if(stageNum[i] <= stages[j]) {//해당 스테이지보다 더 크거나 같다면 도전자임
challUser += 1; //도전자 수만큼 증가
}else if(stageNum[i] == stages[j]) {//같다면 실패해서 막힌사람
failUser += 1;
}else if(!(stageNum[i]>=stages[j]&&stageNum[i]<=stages[j])) { //막힌사람이 아무도 없다면
failUser += 0;//0을 합산 함 다 없으면 0이 될 것이다.
}
}
failRate = (double)failUser/challUser; //해당 스테이지의 실패율을 계산해줌
stageFailRate[i] = failRate;//첫번째 실패율 부터 넣어줌 그러다보면 스테이지 당 실패율이 행렬에 차곡차곡 쌓일 것임.
}
//이제 해당 인덱스 값을 비교해서 인덱스 넘버를 순차적으로 answer에 넣어주면 끝날 것 같은데..
for(int i=0; i<stageFailRate.length; i++) {
System.out.println(stageFailRate[i]);
}//일단 계산로직이 맞나 확인
return answer;
}
}
|
cs |
'자바 초급문제로 맨땅에 해딩하기' 카테고리의 다른 글
자바 초급문제 14. 이상한 문자 만들기 (0) | 2020.04.08 |
---|---|
자바 초급문제 13-2. 실패율 도전 2일차. (0) | 2020.04.07 |
자바 초급문제 13. 예산 (0) | 2020.04.05 |
자바 초급문제 12. 시저 암호 (0) | 2020.04.05 |
자바 초급문제 11. 체육복. 완성 (0) | 2020.04.04 |