์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- Props
- useRef
- Flex
- ์๋ฐ์คํฌ๋ฆฝํธ
- useEffect
- ํ๋ก ํธ์๋
- history api
- ๋ฐ๋ธ์ฝ์ค3๊ธฐ
- REACT
- position
- ์ฝ๋ฉํ ์คํธ
- ๋ฐ๋ธ์ฝ์ค
- float
- ํ๋ก๊ทธ๋๋จธ์ค
- Gatsby
- ๋ธ๋ก๊ทธ
- fetch API
- CSS
- ์๊ณ ๋ฆฌ์ฆ
- Today
- Total
Daehyunii's Dev-blog
๋ชจ๋ ์๋๊ทธ๋จ ์ฐพ๊ธฐ(ํจ์จ์ฑ-ํด์ฌ,ํฌํฌ์ธํฐ,์ฌ๋ผ์ด๋ฉ ์๋์ฐ) ๋ณธ๋ฌธ
๋ชจ๋ ์๋๊ทธ๋จ ์ฐพ๊ธฐ(ํจ์จ์ฑ-ํด์ฌ,ํฌํฌ์ธํฐ,์ฌ๋ผ์ด๋ฉ ์๋์ฐ)
Daehyunii 2022. 9. 2. 17:49๋ฌธ์ (์ถ์ฒ : ์ธํ๋ฐ ์๋ฐ์คํฌ๋ฆฝํธ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด ๊ฐ์, ์ ๋ณด์ฌ๋ฆผํผ์๋)
S๋ฌธ์์ด์์ T๋ฌธ์์ด๊ณผ ์๋๊ทธ๋จ์ด ๋๋ S์ ๋ถ๋ถ๋ฌธ์์ด์ ๊ฐ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ ์ธ์. ์๋๊ทธ๋จ ํ๋ณ์ ๋์๋ฌธ์๊ฐ ๊ตฌ๋ถ๋ฉ๋๋ค. ๋ถ๋ถ๋ฌธ์์ด์ ์ฐ์๋ ๋ฌธ์์ด์ด์ด์ผ ํฉ๋๋ค.
โฃ ์
๋ ฅ์ค๋ช
์ฒซ ์ค์ ์ฒซ ๋ฒ์งธ S๋ฌธ์์ด์ด ์
๋ ฅ๋๊ณ , ๋ ๋ฒ์งธ ์ค์ T๋ฌธ์์ด์ด ์
๋ ฅ๋ฉ๋๋ค.
S๋ฌธ์์ด์ ๊ธธ์ด๋ 10,000์ ๋์ง ์์ผ๋ฉฐ, T๋ฌธ์์ด์ S๋ฌธ์์ด๋ณด๋ค ๊ธธ์ด๊ฐ ์๊ฑฐ๋ ๊ฐ์ต๋๋ค.
โฃ ์ถ๋ ฅ์ค๋ช
S๋จ์ด์ T๋ฌธ์์ด๊ณผ ์๋๊ทธ๋จ์ด ๋๋ ๋ถ๋ถ๋ฌธ์์ด์ ๊ฐ์๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
โฃ ์ ๋ ฅ์์ 1
bacaAacba
abc
โฃ ์ถ๋ ฅ์์ 1
3
์ถ๋ ฅ์ค๋ช : {bac}, {acb}, {cba} 3๊ฐ์ ๋ถ๋ถ๋ฌธ์์ด์ด "abc"๋ฌธ์์ด๊ณผ ์๋๊ทธ๋จ์ ๋๋ค.
Tip
๋ฌธ์ ํ์ด
//๊ฐ์ ์ค๋ช
๋ง ๋ฃ๊ณ ๋ด๊ฐ ์์ฑํ ๋ต
function compare(h1,h2){
if(h1.size !== h2.size) return false;
for(let [key,val] of h1){
// if(h1.get(key) !== h2.get(key)) return false;
if(!h2.has(key)) return false;
if(h2.get(key) !== val) return false;
}
return true;
}
function solution(str1, str2){
let answer = 0;
let sH = new Map();
let tH = new Map();
//tH
for(let x of str2){
if(tH.has(x))tH.set(x, tH.get(x)+1);
else tH.set(x,1);
}
//sH
for(let i = 0 ; i < str2.length-1 ; i++){
if(sH.has(str1[i])) sH.set(str1[i], sH.get(str1[i])+1);
else sH.set(str1[i],1);
}
//ํฌ ํฌ์ธํธ์ ๋์์ ์ฌ๋ผ์ด๋ฉ ์๋์ฐ๋ฅผ ๋ฐ๊ณ ๊ฐ๋๊ฒ์ด ๋ ๋ค ์ถ์์ ๊ฐ๋
์ด๋ค.
let lt = 0;
console.log('str1 >>>>', str1)
for(let rt = str2.length - 1 ; rt < str1.length ; rt++){
console.log('rt >>>', rt)
if(sH.has(str1[rt])) {
console.log('condition 1 >>>> ', true);
sH.set(str1[rt], sH.get(str1[rt])+1);
}
else {
console.log('case else')
sH.set(str1[rt],1);
}
if(compare(sH,tH)) {
console.log('condition 2 >>>> ', true);
answer++;
}
sH.set(str1[lt],sH.get(str1[lt])-1);
console.log('sH >>>', sH);
if(sH.get(str1[lt]) === 0) {
console.log('condition 3 >>> ', true);
sH.delete(str1[lt]);
}
lt++;
}
return answer;
}
let a="bacaAacba";
let b="abc";
console.log(solution(a, b));
'๐ Language & CS knowledge > Algorithm (๊ธฐ์ด๋ฌธ์ ํ์ด)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๊ดํธ ๋ฌธ์ ์ ๊ฑฐ(์๋ฃ๊ตฌ์กฐ-์คํ) (0) | 2022.09.02 |
---|---|
์ฌ๋ฐ๋ฅธ ๊ดํธ(์๋ฃ๊ตฌ์กฐ-์คํ) (0) | 2022.09.02 |
์๋๊ทธ๋จ(ํจ์จ์ฑ-ํด์ฌ) (0) | 2022.09.02 |
ํ๊ธ ํ์ฅ(ํจ์จ์ฑ-ํด์ฌ) (0) | 2022.09.02 |
์ต๋ ๋งค์ถ(ํจ์จ์ฑ-์ฌ๋ผ์ด๋ฉ ์๋์ฐ) (0) | 2022.09.02 |