[250812] TIL

Today I Learned (2025-08-12)

React props, state์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

  • react props๋Š” ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ์ฝ๊ธฐ ์ „์šฉ ๋ฐ์ดํ„ฐ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. props ๊ฐ’์€ ์ž์‹ ์ปดํฌ๋„ŒํŠธ์—์„œ ๋ณ€๊ฒฝ ํ•  ์ˆ˜ ์—†๊ณ  props ๊ฐ€ ๋ณ€ํ•˜๋ฉด ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ฆฌ๋ Œ๋”๋ง ๋Œ€์ƒ์ด ๋ฉ๋‹ˆ๋‹ค.

  • state๋Š” ์ปดํฌ๋„ŒํŠธ ๋‚ด๋ถ€์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ๋™์ ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. state๊ฐ€ ๋ณ€ํ•˜๋ฉด ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋‹ค์‹œ ๋ฆฌ๋ Œ๋”๋ง ๋ฉ๋‹ˆ๋‹ค.

props๊ฐ€ ์ž์‹ ์ปดํฌ๋„ŒํŠธ์—์„œ ๋ณ€ํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?

  • ์ž์‹ ์ปดํฌ๋„ŒํŠธ์—์„œ ๋ณ€ํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š”, ๋ฆฌ์•กํŠธ์—์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹จ๋ฐฉํ–ฅ์œผ๋กœ ํ๋ฅด๊ธฐ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
  • ๋งŒ์•ฝ props๊ฐ€ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ž์‹์˜ ๋™์ž‘์ด ์™ธ๋ถ€ ์ƒํƒœ ๋ณ€ํ™”์— ์ข…์†๋  ์ˆ˜ ์žˆ์–ด์„œ ๋…๋ฆฝ์„ฑ์ด ๋‚ฎ์•„์ง‘๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ์™ธ๋ถ€์—์„œ ๋ฌด์—‡์„ ํ•˜๋“  ๋‚ด๋ถ€๋กœ์ง์—์„œ ์˜ˆ์ธกํ•˜๊ธฐ ์–ด๋ ค์›Œ์ง‘๋‹ˆ๋‹ค. props๊ฐ€ ๋ถˆ๋ณ€์œผ๋กœ ์œ ์ง€๋จ์œผ๋กœ์จ ๋…๋ฆฝ์„ฑ์ด ์˜ฌ๋ผ๊ฐ€๊ณ  ์žฌ์‚ฌ์šฉ์„ฑ์ด ๋†’์•„์ง€๊ณ  ์ฝ”๋“œ์˜ ์บก์Аํ™”๊ฐ€ ๊ฐ•ํ™”๋ฉ๋‹ˆ๋‹ค.

์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ๋ฌธ์ œ ํ’€๊ธฐ

[๋ฐฐ์—ด] ๋ชจ์˜๊ณ ์‚ฌ

  • ๋ฌธ์ œ 2๊ฐœ ํ’ˆ https://school.programmers.co.kr/learn/courses/30/lessons/42840?language=javascript

1๋ฒˆ ์ˆ˜ํฌ์ž : 1 2 3 4 5 ๋ฐ˜๋ณต 2๋ฒˆ ์ˆ˜ํฌ์ž : 2 1 2 3 2 4 2 5 ๋ฐ˜๋ณต 3๋ฒˆ ์ˆ˜ํฌ์ž : 3 3 1 1 2 2 4 4 5 5 ๋ฐ˜๋ณต

์šฐ์„  ์ตœ๋Œ€ 10,000๋ฌธ์ œ๋‹ˆ๊น, 10^4 ๋ฐฐ์—ด ํ•œ๊ฐœ์”ฉ ๋น„๊ตํ•˜๋ฉด 3N X ํ•œ ๋ฒˆ๋งŒ ๋Œ๋ฉด ๋  ๋“ฏ O

1์ดˆ์— 10^8 ์—ฐ์‚ฐ ํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ๊น 10,000๊ฐœ ์ž…๋ ฅ๊ฐ’์ด ๋“ค์–ด์™€๋„ 0.0003์ดˆ ๊ฑธ๋ฆฐ๋‹ค. ์ฆ‰ ์™„ํƒ์œผ๋กœ ํ’€์–ด๋„ ๋œ๋‹ค !

๊ทผ๋ฐ ์นด์šดํŠธ๋ฅผ ํ•ด์„œ 1๋ฒˆ 2๋ฒˆ 3๋ฒˆ์„ ์–ด๋–ป๊ฒŒ ๋„ฃ์„์ง€๊ฐ€ ๊ณ ๋ฏผ๋œ๋‹ค. 1, 2, 3๋ฒˆ์ด๋ผ๋Š” ์‚ฌ๋žŒ ์ •๋ณด๋ฅผ ๊ฐ–๊ณ  ์žˆ์œผ๋ฉด์„œ๋„.. ์นด์šดํŠธ ๊ฐฏ์ˆ˜๋„ ๊ฐ–๊ณ  ์žˆ์–ด์•ผํ•œ๋‹ค. ๊ฐ์ฒด๋กœ ํ•ด์•ผํ•˜๋‚˜ ? ๊ฐ์ฒด๊ฐ€ sort ๊ฐ€ ๋˜๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค. ์•„๋‹ˆ๋ฉด 2์ฐจ์› ๋ฐฐ์—ด?

์šฐ์„  2์ฐจ์› ๋ฐฐ์—ด๋กœ ํ’€์–ด๋ด์•ผ๊ฒ ๋‹ค.

function solution(answers) {
  let answer = [];
  let a = [1, 2, 3, 4, 5];
  let b = [2, 1, 2, 3, 2, 4, 2, 5];
  let c = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5];
  let count = [
    [1, 0],
    [2, 0],
    [3, 0],
  ];

  for (let i = 0; i < answers.length; i++) {
    if (answers[i] == a[i % 5]) count[0][1] += 1;
    if (answers[i] == b[i % 8]) count[1][1] += 1;
    if (answers[i] == c[i % 10]) count[2][1] += 1;
  }

  count.sort((a, b) => b[1] - a[1]);

  const max = count[0][1];

  for (item of count) {
    if (item[1] == max) answer.push(item[0]);
  }

  return answer;
}

์ฑ… ํ’€์ด

  • ์ €๋ž‘ ์–ด๋–ค ๋ถ€๋ถ„์„ ๋‹ค๋ฅด๊ฒŒ ํ’€์—ˆ๋Š”์ง€ ์ƒ๊ฐํ•ด๋ณด์•˜์„๋•Œ, Math.max๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ๊ตฌํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ํŒจํ„ด์„ ๋ฐฐ์—ด๋กœ ๋„ฃ์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฌธ์ œ ํ’€์ด์—์„œ๋Š” 1์ฐจ์› ๋ฐฐ์—ด๋กœ๋„ ๊ทธ๋ƒฅ ์ˆœ์„œ๋Œ€๋กœ ๋„ฃ์–ด์„œ 0 ์ธ๋ฑ์Šค๊ฐ€ 1๋ฒˆ ์ˆ˜ํฌ์ž, 1 ์ธ๋ฑ์Šค๊ฐ€ 2๋ฒˆ ์ˆ˜ํฌ์ž ์ด๋Ÿฐ์‹์œผ๋กœ ๋„ฃ์–ด์คฌ์Šต๋‹ˆ๋‹ค.
function solution(answers) {
  var answer = [];

  // ํŒจํ„ด์„ ๋ฐฐ์—ด๋กœ ๋„ฃ์Œ, ํ›จ์”ฌ ๊น”๋”ํ•œ ๊ฒƒ ๊ฐ™๋‹ค.
  const patterns = [
    [1, 2, 3, 4, 5],
    [2, 1, 2, 3, 2, 4, 2, 5],
    [3, 3, 1, 1, 2, 2, 4, 4, 5, 5],
  ];

  // ์ˆ˜ํฌ์ž ์ ์ˆ˜๋ฅผ ์ €์žฅํ•  ๋ฐฐ์—ด
  const scores = [0, 0, 0];

  for (const [i, answer] of answers.entries()) {
    for (const [j, pattern] of patterns.entries()) {
      if (answer === pattern[i % pattern.length]) {
        scores[j] += 1;
      }
    }
  }

  // ๊ฐ€์žฅ ๋†’์€ ์ ์ˆ˜ ์ €์žฅ
  const maxScore = Math.max(...scores);
  const highestScores = [];

  for (let i = 0; i < scores.length; i++) {
    highestScores.push(i + 1);
  }

  return highestScores;
}

[๋ฐฐ์—ด] ๋‘ ๊ฐœ ๋ฝ‘์•„์„œ ๋”ํ•˜๊ธฐ

https://school.programmers.co.kr/learn/courses/30/lessons/68644?language=javascript

  1. ์™„์ „ํƒ์ƒ‰์œผ๋กœ ํ’ˆ
function solution(numbers) {
  var answer = [];

  // ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์ˆซ์ž๋ฅผ ๋”ํ•ด์„œ answer์— ๋„ฃ๋Š”๋‹ค.
  for (let i = 0; i < numbers.length; i++) {
    for (let j = i + 1; j < numbers.length; j++) {
      answer.push(numbers[i] + numbers[j]);
    }
  }

  // ์ค‘๋ณต๋˜๋Š” ๊ฐ’์„ set์„ ์ด์šฉํ•ด์„œ ์—†์• ๊ณ  ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค.
  answer = [...new Set(answer)];
  answer.sort((a, b) => a - b);

  return answer;
}

๊ต์žฌ ํ’€์ด

์ตœ๋Œ€ ๊ฐœ์ˆ˜๋Š” 100์ด๋ฏ€๋กœ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” ๊ณ ๋ คํ•˜์ง€ ์•Š์•„๋„ ๋จ

function solution(numbers) {
  var answer = [];

  for (let i = 0; i < numbers.length; i++) {
    for (let j = 0; j < i; j++) {
      answer.push(numbers[i] + numbers[j]);
    }
  }

  answer = [...new Set(answer)].sort((a, b) => a - b);

  return answer;
}

Categories:

Updated:

Leave a comment