참고 : 처음에 초기값 생성 잘못해서 밑에 배열 삭제 할때 엄청 해맴
링크 : https://school.programmers.co.kr/learn/courses/30/lessons/42587
import java.util.*;
import java.util.stream.Collectors;
class Solution {
public int solution(int[] priorities, int location) {
int answer = 0;
//초기 배열 세팅
List<Documents> documents = new ArrayList<>();
for (int i =0; i< priorities.length ; i++) {
documents.add(new Documents(i,priorities[i]));
}
// 3, 2, 2, 1 로 순번 생성
List<Integer> collect = Arrays.stream(priorities)
.boxed()
.sorted(Comparator.reverseOrder())
.collect(Collectors.toList());
List<Documents> results = new ArrayList<>();
//순번 루프
for (Integer priority : collect) {
//작업 배열 순회
while(!documents.isEmpty()){
Iterator<Documents> it2 = documents.iterator();
Documents doc = it2.next();
it2.remove();
//조건 미충족 시 피드백
if(doc.getPriority() != priority){
documents.add(doc);
}else{
results.add(doc);
break;
}
}
}
for(int i=0; i<results.size(); i++){
if(results.get(i).getIndex() == location) answer = i+1;
}
return answer;
}
public class Documents{
int index;
int priority;
public Documents(int index, int priority) {
this.index = index;
this.priority = priority;
}
public Documents(Documents other){
this.index = other.getIndex();
this.priority = other.getPriority();
}
public int getIndex() {
return index;
}
public int getPriority() {
return priority;
}
@Override
public String toString() {
return "{" +
"index=" + index +
", priority=" + priority +
'}';
}
}
}
'교육 > 코테' 카테고리의 다른 글
[프로그래머스]JAVA 주식가격 -스택/큐 (1) | 2022.07.06 |
---|---|
[프로그래머스]JAVA 다리를 지나는 트럭 -스택/큐 (0) | 2022.07.06 |
[프로그래머스]JAVA 베스트앨범 -해시 (0) | 2022.07.06 |
[프로그래머스]JAVA 위장-해시 (0) | 2022.07.05 |
[프로그래머스]JAVA 전화번호 목록 - 해시 (0) | 2022.07.05 |