본문 바로가기
Algorithm/PROGRAMMERS[Java]

Lv1. 실패율[카카오]

by 씨니 2022. 4. 18.
728x90

▶ 문제

 

▶ 풀이방법

- 푸는데 오랜시간걸렸다..

- double형 arr배열에 실패율 계산해서 담아야하는데 count/gamer계산이 계속 안되고 0.0만 나와서 왜 그러나 봤더니.. 실수형 계산 시에 count(int형) / count(int형)으로 계산하니 몫 값만 저장되는것이였다..

  --> 문제를 해결해 보기 위해 gamer를 실수형인 double로 바꿔주니 정상적으로 작동했다!!

class Solution {
    public int[] solution(int N, int[] stages) {
        int[] answer = new int[N]; //결과값 담을 공간
        double[] arr = new double[N+1]; //실패율 담을 공간.
        
        double gamer = stages.length; //gamer수 
        for(int i = 1; i < N+1; i++) {
        	int count = 0; //스테이지 개수
        	for(int j = 0; j < stages.length; j++) {
        		if(i == stages[j]) count++;
        	}
        	
        	//실패율 계산
        	if(count == 0) arr[i] = 0;
        	else {
        		arr[i] =  count / gamer;
        		gamer -= count;
        	}
        }
        
        //정답 배열에 값 넣기
        for(int i = 0; i < answer.length; i++) { //정답 담을 공간
        	double max = -1;
        	int index = 0;
        	for(int j = 1; j < arr.length; j++) {//실패율 비교위함.
        		if(max < arr[j]) {
        			max = arr[j];
        			index = j;
        		}
        	}
        	
        	answer[i] = index;
        	arr[index] = -1; //max로 설정됐던 수 최저값으로 바꿔줌.
        }
        return answer;
    }
}

++진짜 계속 안되다 보니 포기하고 싶었지만,, Lv1에서 포기할 수 없지! 하면서 끝까지 풀었더니 해결이 됐다ㅜㅜ

++나중에 보면 진짜 쉬운문제인데 이거보고 해맸다고? 라고 생각할 수 있지만, 지금으로서는 끝까지 해낸 나자신 칭찬해.

728x90

'Algorithm > PROGRAMMERS[Java]' 카테고리의 다른 글

Lv1. 체육복  (0) 2022.04.21
Lv1. 폰켓몬  (0) 2022.04.20
Lv1. 약수의 개수와 덧셈  (0) 2022.04.17
Lv1. 3진법 뒤집기  (0) 2022.04.17
Lv1. 예산  (0) 2022.04.17