[TIL] 220501(์ผ)

Beanxxยท2022๋…„ 5์›” 2์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
5/120
post-thumbnail

โ˜‘๏ธ Coplit - ๋ฐ˜๋ณต๋ฌธ ๋ณต์Šต

โœ… 10. ๋‘ ๊ฐœ์˜ ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ๋‘ ์ˆ˜๋ฅผ ํฌํ•จํ•ด ๋‘ ์ˆ˜ ์‚ฌ์ด์˜ ์ˆ˜ ์ค‘ 2์˜ ๋ฐฐ์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ฆฌํ„ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

โšก๏ธŽ ๋ฐ˜๋ณต๋ฌธ(for)๋ฌธ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
โšก๏ธŽ num1์ด num2๋ณด๋‹ค ์ž‘์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
โšก๏ธŽ 0์€ 2์˜ ๋ฐฐ์ˆ˜๊ฐ€ ์•„๋‹ˆ๋ผ๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ Math.max()๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ์‚ฌ์šฉํ•ด์„œ ํ’€์–ด๋ดค๋Š”๋ฐ ์•ˆ ํ’€๋ ค์„œ reference๋ฅผ ์ฐธ๊ณ ํ–ˆ๋‹ค.

function makeMultiplesOfDigit2(num1, num2) {
  let count = 0;
  let start = num1;
  let end = num2;

  if (num1 > num2) {
    start = num2;
    end = num1;
  }

  if (start === 0) {
    start = 1; 
  }
  
  for (let i = start; i <= end; i++) {
    if (i % 2 === 0) { // ๋งŒ์•ฝ ์œ„์—์„œ start๊ฐ€ 0์ผ ๋•Œ 1๋กœ ๋ฐ”๊พธ์ง€ ์•Š์•˜๋‹ค๋ฉด 0 % 2 === 0 ์ด ์„ฑ๋ฆฝํ•˜๋ฏ€๋กœ 0๋„ 2์˜ ๋ฐฐ์ˆ˜๋กœ count.
      count += 1;      // -> ์œ„์—์„œ start๋ฅผ 1๋กœ ๋ฐ”๊พธ๋Š” ์ด์œ . ๊ทธ๋ž˜์•ผ 0์€ 2์˜ ๋ฐฐ์ˆ˜๋„ ์„ธ์ง€ ์•Š์œผ๋ฏ€๋กœ.
    }
  }

  return count;
}

if (start === 0) { start = 1; }

์ด ๋ถ€๋ถ„์ด ์™œ ์žˆ๋Š”์ง€ ์ฒ˜์Œ์—” ์•Œ ์ˆ˜ ์—†์—ˆ๋Š”๋ฐ ์ด ๋ถ€๋ถ„์„ ๋นผ๊ณ  ์‹คํ–‰์‹œํ‚ค๋‹ˆ๊นŒ ๊ฒŒ์† ์—๋Ÿฌ๊ฐ€ ๋‚˜์„œ ์ดํ•ดํ•˜๋Š”๋ฐ ์กฐ๊ธˆ ์‹œ๊ฐ„์ด ๊ฑธ๋ ธ๋‹ค.

0์„ 2๋กœ ๋‚˜๋ˆด์„ ๋•Œ ๋‚˜๋จธ์ง€๊ฐ€ 0์ด๋ฏ€๋กœ 2์˜ ๋ฐฐ์ˆ˜๋กœ ์„ธ๊ฒŒ ๋˜๋Š”๋ฐ 0์€ 2์˜ ๋ฐฐ์ˆ˜๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ž„์˜๋กœ 1๋กœ ๋ฐ”๊ฟ” ๋‚˜๋จธ์ง€๊ฐ€ 0์ด ๋˜์ง€ ์•Š๋„๋ก ํ•ด์ค€ ๊ฒƒ.



โœ… 17. 1์ด์ƒ์˜ ์ž์—ฐ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ์†Œ์ˆ˜(prime number)์ธ์ง€ ์—ฌ๋ถ€๋ฅผ ๋ฆฌํ„ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

// ์†Œ์ˆ˜: 1๊ณผ ์ž๊ธฐ ์ž์‹  ์ด์™ธ์—๋Š” ์ž์—ฐ์ˆ˜๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์—†๋Š”, ๋Œ€์‹  1๋ณด๋‹ค ์ปค์•ผํ•จ.
// 1. 1๋ณด๋‹ค๋Š” ์ปค์•ผ ํ•œ๋‹ค.
// 2. ์ง์ˆ˜ ์ œ์™ธ(๋‹จ, 2๋Š” ์†Œ์ˆ˜)
// 3. 3๋ถ€ํ„ฐ ์ž๊ธฐ ์ž์‹ ๋ณด๋‹ค ์ž‘์€ ์ˆ˜๊นŒ์ง€ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋‹จ ํ•œ ์ฐจ๋ก€๋ผ๋„ ์žˆ์œผ๋ฉด ๊ทธ๊ฑด ์†Œ์ˆ˜๊ฐ€ ์•„๋‹ˆ๋‹ค.
// num์„ (3~num)์œผ๋กœ ๋‚˜๋ˆ„์–ด์„œ ๋‚˜๋จธ์ง€๊ฐ€ 0์ธ๊ฒŒ ํ•˜๋‚˜๋ผ๋„ ์žˆ์œผ๋ฉด, ์†Œ์ˆ˜๊ฐ€ ์•„๋‹ˆ๋‹ค.

// ++ ๋ฐ˜๋ณต์„ ์กฐ๊ธˆ ๋” ๋œ ํ•˜๋Š” ๋ฐฉ๋ฒ• -> ์ œ๊ณฑ๊ทผ(Math.sqrt())์œผ๋กœ ๋‚˜๋ˆ ์„œ ๋–จ์–ด์ง„๋‹ค๋ฉด? ๊ทธ๋Ÿผ ์ด๋ฏธ ์†Œ์ˆ˜๊ฐ€ ์•„๋‹˜.

function isPrime(num) {
  for(let i=2; i<num; i++) {
    if(num % i === 0) return false;
  }
  
  // 1์ด์ƒ์˜ ์ž์—ฐ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์ง€๋งŒ 1์€ ์†Œ์ˆ˜๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— false return
  if (num === 1)  return false;
 
  return true;
}


โœ… 19. ๋ฌธ์ž์—ด์„ ์ž…๋ ฅ๋ฐ›์•„ ํ•ด๋‹น ๋ฌธ์ž์—ด์— ๋“ฑ์žฅํ•˜๋Š” ๊ฐ ๋ฌธ์ž(letter)๋ฅผ ๊ฐ€์ง€๊ณ  ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ธธ์ด 2์˜ ๋ฌธ์ž์—ด๋“ค์„ ๋ฆฌํ„ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

โšก๏ธŽ ์ด์ค‘ ๋ฐ˜๋ณต๋ฌธ(double for loop)์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
โšก๏ธŽ ๋นˆ ๋ฌธ์ž์—ด์„ ์ž…๋ ฅ๋ฐ›์€ ๊ฒฝ์šฐ์—๋Š” ๋นˆ ๋ฌธ์ž์—ด์„ ๋ฆฌํ„ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

function makePermutations(str) {
  // ์ž…๋ ฅ: string ํƒ€์ž…์˜ ๋ฌธ์ž์—ด ex) '123'
  // ์ถœ๋ ฅ: ํ•ด๋‹น ๋ฌธ์ž์—ด์— ๋“ฑ์žฅํ•˜๋Š” ๊ฐ ๋ฌธ์ž(letter)๋ฅผ ๊ฐ€์ง€๊ณ  ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ธธ์ด 2์˜ ๋ฌธ์ž์—ด
  // ex) '11,12,13,21,22,23,31,32,33'

  // ๋ณ€์ˆ˜ ์„ ์–ธ ๋นˆ ๋ฌธ์ž์—ด ํ• ๋‹น
  // ๋ฐ˜๋ณต๋ฌธ 2๋ฒˆ ๋Œ๋ฆฐ๋‹ค.
  // ์ฒซ๋ฒˆ์งธ ๋ฐ˜๋ณต๋ฌธ: ๊ธธ์ด 2์˜ ๋ฌธ์ž์—ด ์ค‘์—์„œ ์ฒซ๋ฒˆ์งธ ๋ฌธ์ž
  // ๋‘๋ฒˆ์งธ ๋ฐ˜๋ณต๋ฌธ: ๊ธธ์ด 2์˜ ๋ฌธ์ž์—ด ์ค‘์—์„œ ๋‘๋ฒˆ์งธ ๋ฌธ์ž

  let result = '';

  for (let i=0; i < str.length; i++) {   // 1๋ฒˆ์งธ ๋ฌธ์ž
    for (let j=0; j < str.length; j++) { // 2๋ฒˆ์งธ ๋ฌธ์ž
      result = result + `${str[i]}${str[j]},`
    }
  }
  return result.slice(0, result.length-1); // 0~๋งˆ์ง€๋ง‰ ๋ฌธ์ž ์ „๊นŒ์ง€ ์ถœ๋ ฅ (๋งˆ์ง€๋ง‰ ๋ฌธ์ž ','๋Š” ์—†์–ด์•ผ ํ•˜๋ฏ€๋กœ.)
  // result.length-1: ๋ฌธ์ž์—ด ๋งˆ์ง€๋ง‰ ๋ฌธ์ž.
}
profile
FE developer

0๊ฐœ์˜ ๋Œ“๊ธ€