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

๋ฌธ์ œ

ํ•™๊ธ‰ ํšŒ์žฅ์„ ๋ฝ‘๋Š”๋ฐ ํ›„๋ณด๋กœ ๊ธฐํ˜ธ A, B, C, D, E ํ›„๋ณด๊ฐ€ ๋“ฑ๋ก์„ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.ํˆฌํ‘œ์šฉ์ง€์—๋Š” ๋ฐ˜ ํ•™์ƒ๋“ค์ด ์ž๊ธฐ๊ฐ€ ์„ ํƒํ•œ ํ›„๋ณด์˜ ๊ธฐํ˜ธ(์•ŒํŒŒ๋ฒณ)๊ฐ€ ์“ฐ์—ฌ์ ธ ์žˆ์œผ๋ฉฐ ์„ ์ƒ๋‹˜์€ ๊ทธ ๊ธฐํ˜ธ๋ฅผ ๋ฐœํ‘œํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.์„ ์ƒ๋‹˜์˜ ๋ฐœํ‘œ๊ฐ€ ๋๋‚œ ํ›„ ์–ด๋–ค ๊ธฐํ˜ธ์˜ ํ›„๋ณด๊ฐ€ ํšŒ์žฅ์ด ๋˜์—ˆ๋Š”์ง€ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”.๋ฐ˜๋“œ์‹œ ํ•œ ๋ช…์˜ ํ•™๊ธ‰ํšŒ์žฅ์ด ์„ ์ถœ๋˜๋กœ๋ก ํˆฌํ‘œ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์™”๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

 

๋ฌธ์ œ ํ’€์ด

๊ฐ์ฒด์— ๊ฐ ํ›„๋ณด์˜ ๊ธฐํ˜ธ๋ฅผ ๊ฐ ํ”„๋กœํผํ‹ฐ๋กœ ์ €์žฅํ•˜์˜€๊ณ  ๊ฐ ํ›„๋ณดํ‚ค๊ฐ€ ์ง€๋ช… ๋œ ๊ฐ’์„ Value(0)๋กœ ์ดˆ๊ธฐํ™” ํ•ด์ฃผ์—ˆ๋‹ค.ํ•ด๋‹น ๋ฌธ์ž์—ด์„ ์ˆœํšŒํ•˜๋ฉฐ ๋ฌธ์ž์—ด ๋‚ด ํ›„๋ณด ๊ธฐํ˜ธ(x) ๋ฌธ์ž๋ฅผ ํ‚ค(Key)๊ฐ’์œผ๋กœ, ์•ž์„  ๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ์— ์ ‘๊ทผํ•˜์—ฌ ์ง€๋ช… ๋œ ๊ฐ’์„ ์ฆ๊ฐ€์‹œ์ผœ ์ฃผ์—ˆ๋‹ค.

 

์ฝ”๋“œ

function solution(str) {
  let answer;
  let max = Number.MIN_SAFE_INTEGER;
  let result = {
    A: 0,
    B: 0,
    C: 0,
    D: 0,
    E: 0,
  }
  for(let x of str) {
    result[x] += 1;
    max = Math.max(max, result[x]);
    if(max === result[x]) answer = x;
  }

  return answer;
}

console.log(solution('BACBACCACCBDEDE'));

 

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

 

์ž๋ฃŒ๊ตฌ์กฐ์˜ ์„ ํƒ

  • ์ด๋ฆ„(์ผ๋ฐ˜ ๋ณ€์ˆ˜๋ช…) ๋Œ€์‹ ์— ๋ฒˆํ˜ธ(์ธ๋ฑ์Šค)๊ฐ€ ์ฃผ์–ด์กŒ์„ ๊ฒฝ์šฐ: ๋ฐฐ์—ด(Array)์„ ์‚ฌ์šฉ
  • ๋ฌธ์ž์—ด๋กœ ์ ‘๊ทผํ•ด์•ผ ๋˜๋Š” ๊ฒฝ์šฐ: ํ•ด์‰ฌ(Hash)๋ฅผ ์‚ฌ์šฉ

ํ•ด์‰ฌ

  • ํ•ด์‰ฌ(Hash Table): ํ•ด์‰ฌ ๊ฐ’์˜ ์ƒ‰์ธ(index) ์ฃผ์†Œ ๊ฐ’๊ณผ ํ‚ค(Key)๋ฅผ ํ•จ๊ป˜ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ
  • Key์™€ Value๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฐฐ์—ด์ฒ˜๋Ÿผ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

JS์˜ Map ๊ฐ์ฒด

  • Map ๊ฐ์ฒด๋Š” ํ‚ค์™€ ๊ฐ’์˜ ์Œ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ์ปฌ๋ ‰์…˜_๊ฐ์ฒด์™€ ์œ ์‚ฌ
  • ํ‚ค๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’: ๊ฐ์ฒด๋ฅผ ํฌํ•จํ•œ ๋ชจ๋“  ๊ฐ’
  • ์ดํ„ฐ๋Ÿฌ๋ธ”: True_for๋ฌธ์„ ํ†ตํ•ด ์š”์†Œ๋ฅผ ์ˆœํšŒ ๋ฐ ์ฐธ์กฐ ๊ฐ€๋Šฅ

Map ๊ฐ์ฒด๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฐ ํ›„๋ณดํ‚ค(๋ฌธ์ž)๋Š” ํ‚ค(Key) ๊ฐ’์ด๊ณ  ์ง€๋ช…๋œ ํšŸ์ˆ˜๋Š” ๊ฐ’(Value)์ธ ํ•œ ์Œ์œผ๋กœ ์ž๋ฃŒ ๊ตฌ์กฐ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

 

์ฝ”๋“œ

function solution(str) {
  let answer;
  let max = Number.MIN_SAFE_INTEGER;
  let sH = new Map();

  for(let x of str) {
    if(!sH.has(x)) {
      sH.set(x, 1);
    } else {
      sH.set(x, (sH.get(x) + 1))
    }
    max = Math.max(max, sH.get(x));
    if(max === sH.get(x)) answer = x;
  }
  
  return answer;
}

console.log(solution('BACBACCACCBDEDE'));

function solution(str) {
  let answer;
  let sH = new Map();

  for(let x of str) {
    if(sH.has(x)) {
      sH.set(x, sH.get(x) + 1)
    } else {
      sH.set(x, 1);
    }
  }

  let max = Number.MIN_SAFE_INTEGER;

  for(let [key, val] of sH) {
    if(val > max) {
      max = val
      answer = key;
    }
  }
  
  return answer;
}

console.log(solution("BACBACCACCBDEDE"));
๋Œ“๊ธ€
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
TAG
more
ยซ   2024/10   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
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
๊ธ€ ๋ณด๊ด€ํ•จ