Recent Posts
Recent Comments
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 | 26 | 27 | 28 | 29 | 30 |
Tags
- CSS
- REACT
- ํ๋ก ํธ์๋
- ๋ฐ๋ธ์ฝ์ค
- position
- ์๋ฐ์คํฌ๋ฆฝํธ
- history api
- ๋ธ๋ก๊ทธ
- ํ๋ก๊ทธ๋๋จธ์ค
- useRef
- fetch API
- Flex
- Gatsby
- ๋ฐ๋ธ์ฝ์ค3๊ธฐ
- float
- ์ฝ๋ฉํ ์คํธ
- Props
- useEffect
- ์๊ณ ๋ฆฌ์ฆ
Archives
- Today
- Total
Daehyunii's Dev-blog
ํ๋ฆฐํฐ ๋ณธ๋ฌธ
์ถ์ฒ : ํ๋ก๊ทธ๋๋จธ์ค https://programmers.co.kr/
ํ๋ฆฐํฐ ๋ฌธ์ ์ค๋ช
๋ฌธ์ ์ค๋ช
์ผ๋ฐ์ ์ธ ํ๋ฆฐํฐ๋ ์ธ์ ์์ฒญ์ด ๋ค์ด์จ ์์๋๋ก ์ธ์ํฉ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ค์ํ ๋ฌธ์๊ฐ ๋์ค์ ์ธ์๋ ์ ์์ต๋๋ค. ์ด๋ฐ ๋ฌธ์ ๋ฅผ ๋ณด์ํ๊ธฐ ์ํด ์ค์๋๊ฐ ๋์ ๋ฌธ์๋ฅผ ๋จผ์ ์ธ์ํ๋ ํ๋ฆฐํฐ๋ฅผ ๊ฐ๋ฐํ์ต๋๋ค. ์ด ์๋กญ๊ฒ ๊ฐ๋ฐํ ํ๋ฆฐํฐ๋ ์๋์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ธ์ ์์ ์ ์ํํฉ๋๋ค.
1. ์ธ์ ๋๊ธฐ๋ชฉ๋ก์ ๊ฐ์ฅ ์์ ์๋ ๋ฌธ์(J)๋ฅผ ๋๊ธฐ๋ชฉ๋ก์์ ๊บผ๋ ๋๋ค.
2. ๋๋จธ์ง ์ธ์ ๋๊ธฐ๋ชฉ๋ก์์ J๋ณด๋ค ์ค์๋๊ฐ ๋์ ๋ฌธ์๊ฐ ํ ๊ฐ๋ผ๋ ์กด์ฌํ๋ฉด J๋ฅผ ๋๊ธฐ๋ชฉ๋ก์ ๊ฐ์ฅ ๋ง์ง๋ง์ ๋ฃ์ต๋๋ค.
3. ๊ทธ๋ ์ง ์์ผ๋ฉด J๋ฅผ ์ธ์ํฉ๋๋ค.
์๋ฅผ ๋ค์ด, 4๊ฐ์ ๋ฌธ์(A, B, C, D)๊ฐ ์์๋๋ก ์ธ์ ๋๊ธฐ๋ชฉ๋ก์ ์๊ณ ์ค์๋๊ฐ 2 1 3 2 ๋ผ๋ฉด C D A B ์์ผ๋ก ์ธ์ํ๊ฒ ๋ฉ๋๋ค.
๋ด๊ฐ ์ธ์๋ฅผ ์์ฒญํ ๋ฌธ์๊ฐ ๋ช ๋ฒ์งธ๋ก ์ธ์๋๋์ง ์๊ณ ์ถ์ต๋๋ค. ์์ ์์์ C๋ 1๋ฒ์งธ๋ก, A๋ 3๋ฒ์งธ๋ก ์ธ์๋ฉ๋๋ค.
ํ์ฌ ๋๊ธฐ๋ชฉ๋ก์ ์๋ ๋ฌธ์์ ์ค์๋๊ฐ ์์๋๋ก ๋ด๊ธด ๋ฐฐ์ด priorities์ ๋ด๊ฐ ์ธ์๋ฅผ ์์ฒญํ ๋ฌธ์๊ฐ ํ์ฌ ๋๊ธฐ๋ชฉ๋ก์ ์ด๋ค ์์น์ ์๋์ง๋ฅผ ์๋ ค์ฃผ๋ location์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋ด๊ฐ ์ธ์๋ฅผ ์์ฒญํ ๋ฌธ์๊ฐ ๋ช ๋ฒ์งธ๋ก ์ธ์๋๋์ง return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
ํ์ฌ ๋๊ธฐ๋ชฉ๋ก์๋ 1๊ฐ ์ด์ 100๊ฐ ์ดํ์ ๋ฌธ์๊ฐ ์์ต๋๋ค.
์ธ์ ์์ ์ ์ค์๋๋ 1~9๋ก ํํํ๋ฉฐ ์ซ์๊ฐ ํด์๋ก ์ค์ํ๋ค๋ ๋ป์ ๋๋ค.
location์ 0 ์ด์ (ํ์ฌ ๋๊ธฐ๋ชฉ๋ก์ ์๋ ์์ ์ - 1) ์ดํ์ ๊ฐ์ ๊ฐ์ง๋ฉฐ ๋๊ธฐ๋ชฉ๋ก์ ๊ฐ์ฅ ์์ ์์ผ๋ฉด 0, ๋ ๋ฒ์งธ์ ์์ผ๋ฉด 1๋ก ํํํฉ๋๋ค.
์ ์ถ๋ ฅ
์ priorities location return
[2, 1, 3, 2] 2 1
[1, 1, 9, 1, 1, 1] 0 5
์ ์ถ๋ ฅ ์ ์ค๋ช
์์ #1
๋ฌธ์ ์ ๋์จ ์์ ๊ฐ์ต๋๋ค.
์์ #2
6๊ฐ์ ๋ฌธ์(A, B, C, D, E, F)๊ฐ ์ธ์ ๋๊ธฐ๋ชฉ๋ก์ ์๊ณ ์ค์๋๊ฐ 1 1 9 1 1 1 ์ด๋ฏ๋ก C D E F A B ์์ผ๋ก ์ธ์ํฉ๋๋ค.
ํ๋ฆฐํฐ ๋ฌธ์ ๋ queue๋ฅผ ์ด์ฉํด์ ํ์ด์ผ ํ๋ ๋ํ์ ์ธ ๋ฌธ์ ์ด๋ค. ๋ค๋ง ํด๋น ๋ฌธ์ ๋ฅผ ๋ ๋ฒ ์ ๋ ์ ํ์ผ๋, ์ฒซ ๋ฒ์งธ ํ ๋๋ ์ ํ ํด๊ฒฐ๋ฐฉ๋ฒ์ ์๊ฐํด ๋ด์ง ๋ชปํ๊ณ , ๋ ๋ฒ์งธ ํ ๋๋ ์ฝ์ง๋ง์ ์์๋ค. ์ฐ์ ํ๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค๋ ๊ฒ์ ์๊ณ ์์์ผ๋ location์ ์ด๋ป๊ฒ ํ์ฉํด์ผ ํ๋์ง์ ๋ํด์ ์ ํ ๊ฐ์ ์ก์ง ๋ชปํ๋ค. (๋ญ๊ฐ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์๊ฐํ๋ฉด ํ๋์ฉ ๊ฑธ๋ฆฌ๋ ๋๋(?).. ๊ทธ๋์ ๊ฒฐ๊ตญ ๋ค๋ฅธ ์ฌ๋๋ค์ด ํ์ด ๋์ ํ์ด๋ฅผ ๋ณด๊ณ ๊ณต๋ถ๋ฅผ ํ๋ค.) ๋ค์ ๋ฒ์ ๋ง๋ฌ์ ๋๋ ์๋ฒฝํ๊ฒ ํ์ด๋ด์ง ์ถ๋ค.
๋ฌธ์ ํด๊ฒฐ ๋ฐฉ๋ฒ
- ํด๋น ๋ฐฐ์ด์ ์์ ์ค ๊ฐ์ฅ ํฐ ์์๋ฅผ ๋ด์ ์ ์๋ ๋ณ์๊ฐ ํ์ํ๋ค.
- ๊ทธ๋ฆฌ๊ณ priorities์ 0๋ฒ ์ธ๋ฑ์ค์ ๊ฐ์ ํ๋์ฉ ๋นผ๋ด์ด max๊ฐ๊ณผ ๋น๊ตํ๊ณ ์ผ์นํ์ง ์๋๋ค๋ฉด ๋ค์ priorities์ ๋ฐฐ์ด ๋งจ ๋ค๋ก ๋ณด๋ธ๋ค.
- ์ด๋ location์ ๊ฐ์ด 0์ธ์ง ํ์ธํ๊ณ 0์ด๋ผ๋ฉด ํด๋น ๊ฐ์ด ๋ฐฐ์ด์ 0๋ฒ ์ธ๋ฑ์ค์ด๋ฏ๋ก ๊ฐ์ฅ ๋ค๋ก ๋ณด๋ด์ง๋ฏ๋ก priorities.length -1๋ก ์ฌํ ๋นํ๋ค.
- ๋ฐ๋๋ก location์ ๊ฐ์ด 0์ด ์๋๋ผ๋ฉด ์ถ๋ ฅ ๋ ์ ์๋ ์์๊ฐ ํ๋ ๋น๊ฒจ์ง ๊ฒ์ด๋ฏ๋ก location - 1์ ํด์ค๋ค.
- ๋ง์ฝ ๋ฐฐ์ด์ 0๋ฒ ์ธ๋ฑ์ค์ ๊ฐ์ด max์ ๊ฐ๊ณผ ์ผ์นํ๋ค๋ฉด ํด๋น ์์๋ฅผ ์ ๊ฑฐํด์ฃผ๊ณ answer + 1์ ํด์ค๋ค.(์ถ๋ ฅ์ด ๋ ํ์๋ฅผ ์นด์ดํธํจ)
- ๊ทธ๋ฆฌ๊ณ ์ด๋ ๋ง์ฝ loction์ด 0์ด๋ผ๋ฉด ๊ทธ๋๋ก answer๋ฅผ ๋ฐํํ๋ค.
- ๊ทธ๊ฒ ์๋๋ผ๋ฉด loction - 1์ ํด์ค๋ค.
๋ด๊ฐ ํด๊ฒฐํ ๋ฐฉ๋ฒ
function solution(priorities, location){
let answer = 0;
let max = 0;
let temp = [...priorities];
while(temp.length > 0){
max = Math.max(...temp);
if(temp[0] !== max){
temp.push(temp.shift());
if(location === 0){
location = temp.length - 1;
}else{
location--;
}
}else{
temp.shift();
answer++;
if(location === 0){
return answer;
}
location--;
}
}
}
'๐ Language & CS knowledge > Algorithm (ํ๋ก๊ทธ๋๋จธ์ค)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํฐ ์ ๋ง๋ค๊ธฐ (0) | 2022.10.24 |
---|---|
๋ฒ ์คํธ ์จ๋ฒ, ๊ณ ์ฐจ ํจ์ ์ ๋ฆฌ (0) | 2022.10.21 |