나의 풀이
- location의 값을 Integer 일때 어떻게 구분해야 할 지 고민하다가 문자열로 바꿈 (length 비교)
- targetElement의 length 보다 큰 수가 priorities array에 존재하면 push하여 맨 뒤에 넣고, 그렇지 않으면 프린트 됨 (array에서 그대로 제거되면서 순번(answer)은 1씩 증가)
- 요청한 element 이면 return
function solution(priorities, location) {
priorities.map((element, index) => {
let tempElement = priorities.shift();
element = '';
for (let i = 0; i < tempElement; i++) {
element += (index === location)? '!' : '*';
}
priorities.push(element);
})
let answer = 0;
while (priorities.length > 0) {
let targetElement = priorities.shift();
// targetElement보다 큰 수가 있으면 끝에 넣고
// 그렇지 않으면 그대로 array에서 뺀다
let boolean = priorities.every(element => element.length <= targetElement.length);
if (!boolean) {
priorities.push(targetElement);
} else {
answer += 1;
if (targetElement.includes('!')) {
return answer;
}
}
}
}
반응형
'자료구조&알고리즘 > 알고리즘-문제풀이' 카테고리의 다른 글
Leetcode-easy-7. Reverse Integer (0) | 2020.07.14 |
---|---|
Leetcode-easy-1.Two Sum (0) | 2020.07.14 |
[프로그래머스-Level1] 같은 숫자는 싫어 (0) | 2020.06.22 |
[프로그래머스-Level1] 하샤드수 (0) | 2020.06.21 |
[프로그래머스-Level1] 문자열을 정수로 바꾸기 (0) | 2020.06.21 |