int[][]타입 배열에 실패율과 해당 스테이지를 담아넣는데 까지는 성공했다.
각 첫번째 인덱스 기준 0이라면 0 - 실패율 , 스테이지 넘버 까지 만들어 진 것이다.
이후에는 인터페이스를 구현하여 정렬 메소드를 오버라이딩해서 익명 구현 객체 안에서 해결을 하면 될 듯한데.. 아무리 찾아봐도 메소드의 원리를 이해하기가 쉽지가 않은 것같다...거의 다왔다고 생각했는데 상상도 못한 부분에서 늪에 빠져버렸다. 책에서 오늘 본....오버라이딩과 인터페이스의 생성과 구현을 다루어본다고 생각했는데 숨이 턱- 막히는게 정말 모르겠다는 생각이 들었다...책을 보고 메소드 원리를 더 찾아봐야 접근이 가능할 것 같다.
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
package _2019KAKAO_BLIND_RECRUITMENT_실패율;
import java.util.*;
public class subClass01 {
class Solution {
public int[] solution(int N, int[] stages) {
int[] answer = {};
int[] stageNum = new int[N]; // 스테이지 넘버만큼의 배열 생성
int failUser = 0;// 실패자
int challUser = 0;// 도전자
int hardStage = 0;// 아무도 도달못한 스테이지를 가정한 변수
double[][] stageFailRate = new double[N][1]; // 스테이지 및 실패율을 계산할 2차원 배열
for (int i = 0; i < N; i++) { // 1부터 stageNum 까지 반복되는 for문
stageNum[i] = i + 1;
} // 여기까지하면 stageNum 에 스테이지 넘버가 1부터 넣어질 것임.
Arrays.sort(stages);// 내림차순으로 stages 배열
for (int i = 0; i < stageNum.length; i++) {// stageNum 의 숫자와 stages의 넘버를 비교할 생각
// for 문이 또 돌기 전에 2차원배열에 스테이지와 실패율을 계산해주어야 한다.
for (int j = 0; j < stages.length; j++) {// stage 넘버를 확인해야함.
if (stageNum[i] <= stages[j]) {// 유저의 도달 수가 스테이지보다 같거나 크다면 도전자의 수이다.
challUser += 1; // 도전자 수 증가
}
if (stageNum[i] == stages[j]) {// 스테이지기준 유저 도달 수가 같다면 실패자이다.
failUser += 1; // 실패자 수 증가
}
}
double DoubleFailRate = (double) failUser / (double) challUser;//
stageFailRate[i][0] += DoubleFailRate;// 해당 스테이지에 해당 실패율 대입
challUser = 0;
failUser = 0;
if (challUser == 0 && failUser == 0) { // 아무도 도달 못했을 경우
stageFailRate[i][0] += 0;// 해당 스테이지에 실패율 0를 넣는다.
challUser = 0;
failUser = 0;
}
}
int[][] stageFailRateInt = new int[N][2];// INT 값으로 받아볼 예정임
for (int i = 0; i < stageFailRate.length; i++) {
stageFailRateInt[i][0] = (int) (stageFailRate[i][0] * 100);
stageFailRateInt[i][1] = i + 1;
// System.out.println(stageFailRateInt[i][0]+"/"+stageFailRateInt[i][1]);
// System.out.println("---------------------"); //정상 출력 확인 스테이지 실패율 INT 배열 확보 함.
}
// i배열만 오름차순 정리를 해볼까. 그게 되나...stageFailRateInt
return answer;
}
}
}
|
cs |
'자바 초급문제로 맨땅에 해딩하기' 카테고리의 다른 글
자바 초급문제 15. 문자열 내림차순으로 배치하기 (0) | 2020.04.09 |
---|---|
자바 초급문제 14. 이상한 문자 만들기 (0) | 2020.04.08 |
자바 초급문제 13-1. 실패율 도전중. (0) | 2020.04.06 |
자바 초급문제 13. 예산 (0) | 2020.04.05 |
자바 초급문제 12. 시저 암호 (0) | 2020.04.05 |