๋ฌธ์
ํ์ฌ ๋๊ธฐ๋ชฉ๋ก์ ์๋ ๋ฌธ์์ ์ค์๋๊ฐ ์์๋๋ก ๋ด๊ธด ๋ฐฐ์ด priorities์ ๋ด๊ฐ ์ธ์๋ฅผ ์์ฒญํ ๋ฌธ์๊ฐ ํ์ฌ ๋๊ธฐ๋ชฉ๋ก์ ์ด๋ค ์์น์ ์๋์ง๋ฅผ ์๋ ค์ฃผ๋ location์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋ด๊ฐ ์ธ์๋ฅผ ์์ฒญํ ๋ฌธ์๊ฐ ๋ช ๋ฒ์งธ๋ก ์ธ์๋๋์ง return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
1. ์ธ์ ๋๊ธฐ๋ชฉ๋ก์ ๊ฐ์ฅ ์์ ์๋ ๋ฌธ์(J)๋ฅผ ๋๊ธฐ๋ชฉ๋ก์์ ๊บผ๋
๋๋ค.
2. ๋๋จธ์ง ์ธ์ ๋๊ธฐ๋ชฉ๋ก์์ J๋ณด๋ค ์ค์๋๊ฐ ๋์ ๋ฌธ์๊ฐ ํ ๊ฐ๋ผ๋ ์กด์ฌํ๋ฉด J๋ฅผ ๋๊ธฐ๋ชฉ๋ก์ ๊ฐ์ฅ ๋ง์ง๋ง์ ๋ฃ์ต๋๋ค.
3. ๊ทธ๋ ์ง ์์ผ๋ฉด J๋ฅผ ์ธ์ํฉ๋๋ค.
์ ํ์ฌํญ
• ํ์ฌ ๋๊ธฐ๋ชฉ๋ก์๋ 1๊ฐ ์ด์ 100๊ฐ ์ดํ์ ๋ฌธ์๊ฐ ์์ต๋๋ค.
• ์ธ์ ์์ ์ ์ค์๋๋ 1~9๋ก ํํํ๋ฉฐ ์ซ์๊ฐ ํด์๋ก ์ค์ํ๋ค๋ ๋ป์ ๋๋ค.
• location์ 0 ์ด์ (ํ์ฌ ๋๊ธฐ๋ชฉ๋ก์ ์๋ ์์ ์ - 1) ์ดํ์ ๊ฐ์ ๊ฐ์ง๋ฉฐ ๋๊ธฐ๋ชฉ๋ก์ ๊ฐ์ฅ ์์ ์์ผ๋ฉด 0, ๋ ๋ฒ์งธ์ ์์ผ๋ฉด 1๋ก ํํํฉ๋๋ค.
ํ์ ๊ฐ๋
๋ฐฐ์ด์ ๊ฐ ์ถ๊ฐ
unshift() : ๋ฐฐ์ด์ ๋งจ ์์ ๊ฐ ์ถ๊ฐ
push() : ๋ฐฐ์ด์ ๋งจ ๋์ ๊ฐ ์ถ๊ฐ
๋ฐฐ์ด์ ๊ฐ ์ ๊ฑฐ
shift() : ๋ฐฐ์ด์ ๋งจ ์์ ๊ฐ ์ ๊ฑฐ
pop() : ๋ฐฐ์ด์ ๋งจ ๋ค์ ๊ฐ ์ ๊ฑฐ
ํ์ด
์ถ๋ ฅํ์๋ฅผ ์นด์ดํธํ ๋ณ์ count
ํ์ฌ ์์น ์ธ๋ฑ์ค๋ฅผ ๋ด๊ณ ๋ณ๊ฒฝํด์ค ๋ณ์ myDoc
while๋ฌธ์ผ๋ก ๋ฐ๋ณตํด์ ๋ฐฐ์ด์ ๋๋ฉด์
ํ์ฌ ์์น์ ์์๋ฅผ ๊บผ๋ธ ํ(shift),
๋๋จธ์ง ์์๋ค๊ณผ ๋น๊ตํด์ ์ ์ผ ๋์ ์ซ์๋ผ๋ฉด ์ถ๋ ฅํ๋ค(์นด์ดํ ). ๋ง์ฝ ๋ด ์ธ๋ฑ์ค ๋ณ์๊ฐ 0๋ฒ์งธ๋ผ๋ฉด answer์ ๋ด์์ ๋ฆฌํดํ๋ค.
๋๋จธ์ง ์์๋ค๊ณผ ๋น๊ตํด์ ํ์ฌ ์์น ์์๋ณด๋ค ๋์ ์ซ์๊ฐ ์๋ค๋ฉด, ๊บผ๋ธ ์์๋ฅผ ๋ฐฐ์ด์ ๋งจ ๋ค์ ๋ค์ ๋ฃ๋๋ค(push)
(์ดํ ๊ณตํต์ผ๋ก)
๋ด ์ธ๋ฑ์ค๋ฅผ ์ ์งํ๊ธฐ ์ํด ๋ฐฐ์ด ๋ด ์ด๋์ด ์์์ผ๋ฏ๋ก -1์ฉํด์ค๋ค.
๋ง์ฝ ๋ด ๋ฌธ์๊ฐ ๋งจ ๋ค๋ก ๊ฐ ๊ฒฝ์ฐ, ๋ด ๋ฌธ์์ ์์น๋ ๋งจ ๋ค๋ก ๋ฐ๊ฟ์ค๋ค.
์ฝ๋
const solution = (priorities, location) => {
let answer;
let count= 0;
let myDoc = location;
while(priorities.length>0){
let item = priorities.shift();
if(priorities.filter((el) => el > item).length>0){
priorities.push(item);
} else {
count++;
if(myDoc === 0) {
return answer = count;
}
}
myDoc--;
if(myDoc === -1){
myDoc = priorities.length -1;
}
}
return answer;
}
๋ค๋ฅธ ํ์ด ์ฝ๋
function solution(priorities, location) {
let temp = [...priorities];
let max = 0;
let answer = 0;
while(temp.length>0) {
max = Math.max(...temp);
if(temp[0] !== max) {
temp.push(temp.shift());
} else {
temp.shift();
answer++;
if(location===0) return answer;
}
location>0 ? location-- : location = temp.length - 1;
}
}
'๐กAlgorithm > ๋ฌธ์ ํ๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค | Level 2 - ์ซ์์ ํํ (0) | 2021.11.04 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค | Level 2 - ์ต์๊ฐ ๋ง๋ค๊ธฐ (0) | 2021.11.04 |
ํ๋ก๊ทธ๋๋จธ์ค - ๋ค์ ํฐ ์ซ์ (0) | 2021.11.04 |
ํ๋ก๊ทธ๋๋จธ์ค - ์ด์ํ ๋ฌธ์ ๋ง๋ค๊ธฐ (1) | 2021.11.04 |
ํ๋ก๊ทธ๋๋จธ์ค - ๋ก๋์ ์ต๊ณ ์์์ ์ต์ ์์ (0) | 2021.10.29 |