{프로그래머스} 스택/큐 > 프린터 (Java, JavaScript ES5)
문제 링크
생각한대로 잘 푼 첫 케이스..
사실 문제에서 제시한 방법 그대로 풀었다.
그에 앞서 location을 기억하기 위해 객체 배열로 변경하였음.
JavaScript
// 배열 내에 특정 값 보다 큰 값이 있는지 체크
function compare(arr, param){
var result = false;
for(var index = 0; index < arr.length; index++){
if( arr[index].priority > param ){
result = true;
}
}
return result;
}
function solution(priorities, location) {
var answer = 1;
var index = 0;
var temp = new Array();
for(; index < priorities.length; index++){
temp[index] = { location : index, priority : priorities[index] };
}
while( true ){
var oTemp = temp[0];
temp.shift();
if( compare(temp, oTemp.priority) == true ){
temp.push(oTemp);
} else {
if(oTemp.location !== location){
answer = answer + 1;
} else {
break;
}
}
}
return answer;
}
Java
자바스크립트로 풀이한 내용을 자바로 그대로 재구현했다.
오브젝트 대신 HashMap을 사용하였고,
배열대신 리스트 (List<HashMap<String, Integer>>) 형태를 사용했다.
import java.util.ArrayList;
import java.util.List;
import java.util.Arrays;
import java.util.Map;
import java.util.HashMap;
class Solution {
public boolean compare(List<Map<String, Integer>> list, int param){
boolean result = false;
for(int index = 0; index < list.size(); index = index + 1){
Map<String, Integer> map = list.get(index);
int priority = (Integer) map.get("priority");
if( priority > param ){
result = true;
break;
}
}
return result;
}
public int solution(int[] priorities, int location) {
int answer = 1;
List<Map<String, Integer>> aTemp = new ArrayList<Map<String, Integer>>();
for(int index = 0; index < priorities.length; index = index + 1){
Map<String, Integer> temp = new HashMap<String, Integer>();
temp.put("location", index);
temp.put("priority", priorities[index]);
aTemp.add( temp );
}
while( true ){
Map<String, Integer> oTemp = aTemp.get(0);
aTemp.remove(0);
if( compare( aTemp, oTemp.get("priority")) == true ){
aTemp.add(oTemp);
}else{
if(oTemp.get("location") != location){
answer = answer + 1;
}else{
break;
}
}
}
return answer;
}
}
Author And Source
이 문제에 관하여({프로그래머스} 스택/큐 > 프린터 (Java, JavaScript ES5)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dev-wanted/프로그래머스-스택큐-프린터저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)