์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- ๋ฐ๋ธ์ฝ์ค3๊ธฐ
- ์ฝ๋ฉํ ์คํธ
- history api
- Props
- ๋ธ๋ก๊ทธ
- Flex
- float
- useRef
- CSS
- ํ๋ก ํธ์๋
- useEffect
- ๋ฐ๋ธ์ฝ์ค
- ์๊ณ ๋ฆฌ์ฆ
- ์๋ฐ์คํฌ๋ฆฝํธ
- ํ๋ก๊ทธ๋๋จธ์ค
- fetch API
- position
- Gatsby
- REACT
- Today
- Total
Daehyunii's Dev-blog
ํฐ ์ ๋ง๋ค๊ธฐ ๋ณธ๋ฌธ
ํฐ ์ ๋ง๋ค๊ธฐ
Daehyunii 2022. 10. 24. 13:22์ถ์ฒ : ํ๋ก๊ทธ๋๋จธ์ค https://programmers.co.kr/
๋ฌธ์
์ด๋ค ์ซ์์์ k๊ฐ์ ์๋ฅผ ์ ๊ฑฐํ์ ๋ ์ป์ ์ ์๋ ๊ฐ์ฅ ํฐ ์ซ์๋ฅผ ๊ตฌํ๋ ค ํฉ๋๋ค.
์๋ฅผ ๋ค์ด, ์ซ์ 1924์์ ์ ๋ ๊ฐ๋ฅผ ์ ๊ฑฐํ๋ฉด [19, 12, 14, 92, 94, 24] ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ์ด ์ค ๊ฐ์ฅ ํฐ ์ซ์๋ 94 ์ ๋๋ค.
๋ฌธ์์ด ํ์์ผ๋ก ์ซ์ number์ ์ ๊ฑฐํ ์์ ๊ฐ์ k๊ฐ solution ํจ์์ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. number์์ k ๊ฐ์ ์๋ฅผ ์ ๊ฑฐํ์ ๋ ๋ง๋ค ์ ์๋ ์ ์ค ๊ฐ์ฅ ํฐ ์ซ์๋ฅผ ๋ฌธ์์ด ํํ๋ก return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํ์ธ์.
์ ํ ์กฐ๊ฑด
number๋ 2์๋ฆฌ ์ด์, 1,000,000์๋ฆฌ ์ดํ์ธ ์ซ์์ ๋๋ค.
k๋ 1 ์ด์ number์ ์๋ฆฟ์ ๋ฏธ๋ง์ธ ์์ฐ์์ ๋๋ค.
์ ์ถ๋ ฅ ์
number k return
"1924" 2 "94"
"1231234" 3 "3234"
"4177252841" 4 "775841"
๋์ ํ์ด
์ฒ์์๋ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๋ชจ๋ ๊ตฌํด์ ๊ฐ์ฅ ํฐ ๊ฐ์ ๊ตฌํด์ผ ํ๋๊ฑด๊ฐ? ๊ทธ๋ผ ์ฌ๊ท ๋ฐฉ์์ผ๋ก ๋๋ ค์ผ ํ๋?.. ๋ฑ๋ฑ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์๊ฐํ๋๊ฒ ์ฝ์ง๋ง์ ์์๋ค. ๊ทธ๋ฌ๋ค๊ฐ ํ์ ์๊ณ ๋ฆฌ์ฆ์ ๊ธฐ์ค์ผ๋ก ์๊ฐ์ ํด๋ณด๋ ์์ ์ซ์๊ฐ ๋ค์ ์ซ์๋ณด๋ค ์๋ค๋ฉด ์ญ์ , ๊ทธ๊ฒ ์๋๋ผ๋ฉด ์ด๋ ค๋๊ณ ๊ทธ ๋ค์ ์ซ์๋ก ์ด๋ํด์ ๋น๊ต!๋ฅผ ํ๊ณ ์ญ์ ํด์ผํ๋ ์ซ์์ ๊ฐ์๊ฐ ์ผ์นํ ๋๊น์ง ์ด๋ฅผ ๋ฐ๋ณตํ๋ฉด ์ข๊ฒ ๋ค๋ผ๋ ์๊ฐ์ด ๋ค์๊ณ , ์ค๊ฐ์ ์ญ์ ๋ฅผ ํ๋ฉด index๋ก ์ธํด์ ๋ฌธ์ ๊ฐ ๋ ์ ์์ผ๋ ์ซ์๊ฐ ์ญ์ ๋๋ฉด idx๋ฅผ ๋ค์ 0์ผ๋ก ์ฌํ ๋นํ๊ณ ๋ค์ ์ฒ์๋ถํฐ ๋น๊ต๋ฅผ ์์ํ๋ฉด์ ์ซ์๋ฅผ ์ ๊ฑฐํด ๋๊ฐ๋ ๋ฐฉ์์ ์ ํํ๋ค.
function solution(number, k) {
var answer = '';
let temp = number.split('');
let cnt = 0;
let idx = 0;
while(cnt < k){
if(Number(temp[idx]) < Number(temp[idx + 1])){
temp.splice(idx, 1);
cnt++;
idx = 0;
} else {
idx++;
}
}
return answer = temp.join('');
}
๊ทผ๋ฐ ์ฌ๊ธฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค .. ์ณ๋ฐ๋ฅธ ์ ๋ต์ ๋ฐํํ๋๊ฒ์ ๋ง์ง๋ง ,,, number๊ฐ 100๋ง์๋ฆฌ ์ดํ์ธ ์ซ์์ด๊ธฐ ๋๋ฌธ์ ์ญ์ ํ ๋๋ง๋ค ๋ฐ๋ณต๋ฌธ์ ๊ณ์ํด์ ๋๋ฆฌ๊ฒ ๋๋ฏ๋ก,, ์๊ฐ ๋ณต์ก๋๊ฐ ํฌ๊ฒ ์ฆ๊ฐํ๋ค๋ ๊ฒ์ด์๋ค. ํจ์จ์ฑ ์ด์๋ก ์ธํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ด๊ฐ ์๊ฐํด ๋ด์ง๋ ๋ชปํ๊ณ , ๊ฐ์ฌ๋์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ค์๋ค. ๊ฐ์ฌ๋์ stack์ ์ด์ฉํ์ฌ ์คํ์ ์ซ์๋ฅผ ํ๋์ฉ ์ง์ด๋ฃ๊ณ ๋ง์ง๋ง์ ๋ค์ด๊ฐ ์ซ์์ ๊ทธ ๋ค์ ์ซ์๋ฅผ ๋น๊ตํด์ ๊ทธ ๋ค์ ์ซ์๊ฐ ๋ ํฐ ๊ฒฝ์ฐ์๋ pop()์ผ๋ก ์ ๊ฑฐํด์ฃผ๊ณ ๋ฐ๋๋ก ์๋ค๋ฉด ๊ทธ๋๋ก push()๋ฅผ ์ ๊ฑฐํด์ผ ํ๋ ์ซ์ ๊ฐ์์ ๋น๊ตํ๋ฉด์ ์ถ๊ฐ์ ์ญ์ ๋ฅผ ๋ฐ๋ณตํ๊ฒ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง stack์ ๋ค์ด์๋ ๊ฐ๋ค์ join('')ํด์ ๋ฐํํ๋ค.
์ฌ๊ธฐ์ ์ฃผ์ํด์ผ ํ ์ ์ ์ฃ์ง ์ผ์ด์ค์ด๋ค. '98765432' ๋น๊ต๊ฐ ์ด๋ค์ง๋ ์ฒ์ ์ซ์๋ณด๋ค ๊ทธ ๋ค์ ์ซ์๊ฐ ์ ๋ถ ์์ ๊ฒฝ์ฐ์๋ stack์ ์ ๋ถ ๋ค์ด๊ฐ๊ฒ ๋๋ฏ๋ก ์ ๊ฑฐํด์ผ ํ๋ ์ซ์ ๊ฐ์์ ์ผ์นํ ๋๊น์ง ๋ค์ stack์์ pop()์ ํด์ฃผ์ด์ผ ํ๋ค.
๋ฌธ์ ํด๊ฒฐ
function solution(number, k) {
let stack = [];
let count = 0;
for(let item of number) {
while (count < k && stack[stack.length - 1] < item){
stack.pop();
count += 1;
}
stack.push(item);
}
while (count < k) {
stack.pop();
count += 1;
}
return stack.join('');
}
์ฑ๋ฅ์ธก๋ฉด์์ ํ ๋จ๊ณ ๋ ๋์์ง ๋ค๋๊ฒ์ ์ ์ ์๋ค. ์์ง๊น์ง๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๋ ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ์์ ์๊ฐํด ๋ด๊ณ ์ด๋ค ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ด์ฉํด์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ฉด ์ข์์ง๊ฐ ๋ฐ๋ก ๋ฐ๋ก ๋ ์ค๋ฅด๋ ์์ค์ ์๋ ๊ฒ ๊ฐ๋ค. ์ด๋ฅผ ์ฐ์ตํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ค ๋ง์ ๋ฌธ์ ๋ฅผ ์ ํ๊ณ ํ๊ธฐ ์ํด ๊ณ ๋ฏผํ๊ณ ํ์ด๋ณด๊ณ ๋ค๋ฅธ ์ฌ๋์ ์ฝ๋๋ ๋ง์ด ์ ํ๋ ๋ฐฉ๋ฒ ๋ฟ์ด๋ผ๋๊ฑธ ์๊ณ ์๋ค! ๊ฒฐ๋ก ์,,,ํ์ดํ ์ด๋ค!! ใ ใ ใ ใ
'๐ Language & CS knowledge > Algorithm (ํ๋ก๊ทธ๋๋จธ์ค)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฒ ์คํธ ์จ๋ฒ, ๊ณ ์ฐจ ํจ์ ์ ๋ฆฌ (0) | 2022.10.21 |
---|---|
ํ๋ฆฐํฐ (0) | 2022.10.21 |