ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๋ฌธ์ œ

Anagram์ด๋ž€ ๋‘ ๋ฌธ์ž์—ด์ด ์•ŒํŒŒ๋ฒณ์˜ ๋‚˜์—ด ์ˆœ์„œ๋ฅผ ๋‹ค๋ฅด์ง€๋งŒ ๊ทธ ๊ตฌ์„ฑ์ด ์ผ์น˜ํ•˜๋ฉด ๋‘ ๋‹จ์–ด๋Š” ์•„ ๋‚˜๊ทธ๋žจ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค๋ฉด AbaAeCe ์™€ baeeACA ๋Š” ์•ŒํŒŒ๋ฒณ์„ ๋‚˜์—ด ์ˆœ์„œ๋Š” ๋‹ค๋ฅด์ง€๋งŒ ๊ทธ ๊ตฌ์„ฑ์„ ์‚ดํŽด๋ณด๋ฉด A(2), a(1), b(1), C(1), e(2)๋กœ ์•ŒํŒŒ๋ฒณ๊ณผ ๊ทธ ๊ฐœ์ˆ˜๊ฐ€ ๋ชจ๋‘ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰ ์–ด๋Š ํ•œ ๋‹จ์–ด๋ฅผ ์žฌ ๋ฐฐ์—ดํ•˜๋ฉด ์ƒ๋Œ€ํŽธ ๋‹จ์–ด๊ฐ€ ๋  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ์•„๋‚˜๊ทธ๋žจ์ด๋ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ธธ์ด๊ฐ€ ๊ฐ™์€ ๋‘ ๊ฐœ์˜ ๋‹จ์–ด๊ฐ€ ์ฃผ์–ด์ง€๋ฉด ๋‘ ๋‹จ์–ด๊ฐ€ ์•„๋‚˜๊ทธ๋žจ์ธ์ง€ ํŒ๋ณ„ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ ์š”. ์•„๋‚˜๊ทธ๋žจ ํŒ๋ณ„์‹œ ๋Œ€์†Œ๋ฌธ์ž๊ฐ€ ๊ตฌ๋ถ„๋ฉ๋‹ˆ๋‹ค.

 

๋ฌธ์ œํ’€์ด

key์™€ Value๋ฅผ ํ•œ ์Œ์œผ๋กœ ์ ์žฌํ•˜๋Š” Map() ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ๋ฌธ์ž์—ด์— ๋Œ€ํ•ด ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ ๋‹ค.๋‘ ๋ฌธ์ž์—ด์—์„œ Key์˜ ๊ฐ’์ธ ์•ŒํŒŒ๋ฒณ์ด ๋‹ค๋ฅด๋‹ค๋ฉด ์•„๋‚˜๊ทธ๋žจ์˜ ์ „์ œ ์กฐ๊ฑด์„ ์„ฑ๋ฆฝํ•˜์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋Œ€๋กœ ์—ฐ์‚ฐ์„ ์ข…๋ฃŒํ•œ๋‹ค.๋งŒ์•ฝ ์ค‘์ฒฉ for๋ฌธ ๋‚ด์—์„œ ๋™์ผํ•œ Key๊ฐ’์„ ์ฐพ์€ ๋’ค ๊ทธ ๊ฐ’์ด ๋™์ผํ•  ๊ฒฝ์šฐ ์•„๋‚˜๊ทธ๋žจ ์กฐ๊ฑด์„ ์„ฑ๋ฆฝํ•˜๊ณ  ๋งˆ์ง€๋ง‰๊นŒ์ง€ ์ˆœํšŒํ–ˆ์„ ๋•Œ๋„์ฐพ์ง€ ๋ชปํ•œ๋‹ค๋ฉด ์ด ๋˜ํ•œ ์ „์ œ ์กฐ๊ฑด์„ ์„ฑ๋ฆฝํ•˜์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋Œ€๋กœ ์—ฐ์‚ฐ์„ ์ข…๋ฃŒํ•œ๋‹ค.

 

์ฝ”๋“œ

function solution(str1, str2) {
  let answer = 0;
  let sH1 = new Map();
  let sH2 = new Map();

  for (let x of str1) {
    if (!sH1.has(x)) {
      sH1.set(x, 1);
    } else {
      sH1.set(x, sH1.get(x) + 1);
    }
  }
  for (let x of str2) {
    if (!sH2.has(x)) {
      sH2.set(x, 1);
    } else {
      sH2.set(x, sH2.get(x) + 1);
    }
  }
  for (let [key1, val1] of sH1) {
    if(answer === false) break;
    for (let [key2, val2] of sH2) {
      if (key1 !== key2) continue;
      //๋‘ ๊ฐœ์˜ ํ‚ค๊ฐ’์ด ๋‹ค๋ฅผ ๊ฒฝ์šฐ ์ดํ•˜ ์—ฐ์‚ฐ์„ ์ƒ๋žตํ•˜๊ณ  ๋‹ค์Œ ์ธ๋ฑ์Šค๋ฅผ ์ฐธ์กฐ
      if (val1 === val2) answer = true;
      else answer = false;
    }
  }
  return answer;
}

let str1 = "AbaAeCe";
let str2 = "baeeACA";
console.log(solution(str1, str2));

 

๋ฌธ์ œํ’€์ด2

์œ„์™€ ๊ฐ™์ด ๊ฐ ๋ฌธ์ž์—ด๋งˆ๋‹ค Map ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด์ฃผ๊ณ  ํ•ด๋‹น Map ๊ฐ์ฒด์— Key์™€ Value ๊ฐ’์„ ์ฃผ๊ธฐ ์œ„ํ•ด ๋™์ผํ•œ ์ˆ˜ํ–‰์„ ํ•˜๋Š” ๋ฐ˜๋ณต๋ฌธ์„์ˆ˜ํ–‰์ผ€ ํ•˜๋Š” ๊ฒƒ์€ ๋น„ํšจ์œจ์ ์ด๋‹ค.

 

์ด๋ฅผ ๋Œ€์‹ ์— ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด์— ๋Œ€ํ•ด์„œ๋งŒ Map ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด์ฃผ๊ณ  ํ•ด๋‹น Map ๊ฐ์ฒด์— ์ ์žฌ๋˜์–ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ ๊ฐ’๊ณผ ๋˜ ๋‹ค๋ฅธ ๋ฌธ์ž์—ด์—๋Œ€ํ•œ ๋ฐ์ดํ„ฐ ๊ฐ’์„ ๋น„๊ตํ•˜๋Š” ์‹์œผ๋กœ ๋Œ€์ฒดํ•˜๊ณ ์ž ํ•œ๋‹ค.

 

ํฌํ•จ๋˜์–ด ์žˆ๋Š” ๋ฌธ์ž์˜ ๊ฐฏ์ˆ˜๊ฐ€ ๊ฐ™๋‹ค๋Š” ๋ง์€ ๋ฌธ์ž์—ด์„ ์ˆœํšŒํ•˜๋ฉฐ Map ๊ฐ์ฒด์™€ ๋™์ผํ•œ ๋ฌธ์ž๊ฐ€ ์žˆ์„ ์‹œ, ํ•ด๋‹น ๋ฌธ์ž์˜ ํšŸ์ˆ˜๋ฅผ 1์”ฉ ์ƒ์‡„์‹œ์ผœ ์ค€๋‹ค๋ฉด ๊ฒฐ๊ตญ ๋งˆ์ง€๋ง‰์—” 0์ด ๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ฆ‰, 0 ์ด์ƒ์ด๋ฉด ๋ฌธ์ž์—ด์˜ ๊ฐฏ์ˆ˜๊ฐ€ n๊ฐœ ๋งŒํผ ๋” ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ด๊ณ  0 ์ดํ•˜์ผ ๊ฒฝ์šฐ n๊ฐœ ๋งŒํผ ๋œ ์žˆ๋‹ค๋Š” ์˜๋ฏธ๋กœ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ฝ”๋“œ

function solution(str1, str2) {
  let answer;
  let sH1 = new Map();

  for (let x of str1) {
    if (!sH1.has(x)) {
      sH1.set(x, 1);
    } else {
      sH1.set(x, sH1.get(x) + 1);
    }
  }

  for(let x of str2) {
    if(!sH1.has(x)) {
      answer = false
      break;
    }
    sH1.set(x, sH1.get(x) - 1);
    if(sH1.get(x) === 0) answer = true;
    else if(sH1.get(x) < 0) {
      answer = false;
      break;
    }
  }
  return answer;
}

let str1 = "AbaAeCe";
let str2 = "baeeACA";
console.log(solution(str1, str2));

function solution(str1, str2){
                let answer="true"; 
                let sH = new Map();
                for(let x of str1){
                    if(sH.has(x)) sH.set(x, sH.get(x)+1);
                    else sH.set(x, 1);
                }
                for(let x of str2){
                    if(!sH.has(x) || sH.get(x)==0) return "false";
                    sH.set(x, sH.get(x)-1);
                }
                return answer;
            }
            
            let a="AbaAeCe";
            let b="baeeACA";
            console.log(solution(a, b));
๋Œ“๊ธ€
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
TAG
more
ยซ   2025/03   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
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 31
๊ธ€ ๋ณด๊ด€ํ•จ