강의로 돌아가기
Fedcba13

제가 무엇을 고려 못한걸까요...?

채점하기는 통과하는게 거의 없네요...

작성중인 코드―Solution.java
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
class Solution {
    public int solution(int[] priorities, int location) {
        int answer = 0;
        int maxindex = 0;
        int max = priorities[0];
        for (int i = 0; i < priorities.length; i++) {
            if (priorities[i] > max) {
                max = priorities[i];
                maxindex = i;
            }
        }

        for (int i = maxindex; i<priorities.length; i++) {
            answer=answer+1;
            if(i==location) {
                break;
            }
            if (i == (priorities.length - 1)) {
                i = -1;
                continue;
            }
        }
        return answer;
    }
}
1 개의 답변
Myeong Seon Choi

맨 첫번째만 maximum priority로 뽑고 나머지는 그냥 뽑겠다는 문제가 아니에요. 모든 task를 priority 순서대로 처리할 것인데, 그 과정에서 밀리는 task들은 모두 다시 맨뒤부터 기다리는 상황을 생각하는거죠.
예시랑 조금 다르게 [1, 2, 3, 2'] (두번째 2는 구분을 위해 2'이라 합시다) 가 뽑히는 과정을 생각해볼게요
[1, 2, 3, 2'] - 1은 maximum priority가 아니므로 맨뒤
[2, 3, 2', 1] - 2 역시 아니므로 맨뒤
[3, 2', 1, 2] - 3은 max이므로 뽑힘!
[2', 1, 2] - 2'도 max이므로 뽑힘!
[1, 2] - 1은 max가 아니므로 맨뒤
[2, 1] - 2는 max이므로 뽑힘!
[1] - 1 뽑힘
이 경우와 본인의 경우가 어떻게 다른지 확인해보세요~

  • Fedcba13
    아~~ 감사합니다!! Fedcba13 2019.01.22 12:09
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.