[Day 2] ๐Ÿ”ฅ์ž…๋ฌธ - ์‚ฌ์น™์—ฐ์‚ฐ, ์กฐ๊ฑด๋ฌธ, ๋ฐฐ์—ด

nanaยท2023๋…„ 1์›” 12์ผ
0

๐Ÿ”ฅ Programmers

๋ชฉ๋ก ๋ณด๊ธฐ
2/10
post-thumbnail

1. ๋‘ ์ˆ˜์˜ ๋‚˜๋ˆ—์…ˆ

๐Ÿ’Ÿ ๋ฌธ์ œ ์„ค๋ช…

  • ์ •์ˆ˜ num1๊ณผ num2๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, num1์„ num2๋กœ ๋‚˜๋ˆˆ ๊ฐ’์— 1,000์„ ๊ณฑํ•œ ํ›„ ์ •์ˆ˜ ๋ถ€๋ถ„์„ return ํ•˜๋„๋ก soltuion ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

๐Ÿ’Ÿ ์ œํ•œ ์‚ฌํ•ญ

  • 0 < num1 โ‰ค 100
  • 0 < num2 โ‰ค 100

๐Ÿ’Ÿ ์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

  • ์ž…์ถœ๋ ฅ ์˜ˆ #1
    num1์ด 3, num2๊ฐ€ 2์ด๋ฏ€๋กœ 3 / 2 = 1.5์— 1,000์„ ๊ณฑํ•˜๋ฉด 1500์ด ๋ฉ๋‹ˆ๋‹ค.

  • ์ž…์ถœ๋ ฅ ์˜ˆ #2
    num1์ด 7, num2๊ฐ€ 3์ด๋ฏ€๋กœ 7 / 3 = 2.33333...์— 1,000์„ ๊ณฑํ•˜๋ฉด 2333.3333.... ์ด ๋˜๋ฉฐ, ์ •์ˆ˜ ๋ถ€๋ถ„์€ 2333์ž…๋‹ˆ๋‹ค.

  • ์ž…์ถœ๋ ฅ ์˜ˆ #3
    num1์ด 1, num2๊ฐ€ 16์ด๋ฏ€๋กœ 1 / 16 = 0.0625์— 1,000์„ ๊ณฑํ•˜๋ฉด 62.5๊ฐ€ ๋˜๋ฉฐ, ์ •์ˆ˜ ๋ถ€๋ถ„์€ 62์ž…๋‹ˆ๋‹ค.

๐Ÿ–๏ธ solution.js

// 1. num1์„ num2๋กœ ๋‚˜๋ˆˆ๋‹ค.
// 2. ๋‚˜๋ˆˆ ๊ฐ’์— 1000์„ ๊ณฑํ•œ๋‹ค.
// 3. ๊ทธ ๊ฐ’์— ์ •์ˆ˜ ๋ถ€๋ถ„์„ ๊ตฌํ•œ๋‹ค.

function solution(num1, num2) {
    var answer = Math.floor(num1 / num2 * 1000);
    return answer;
}

// ๐Ÿ“Œ Math.floor ๋Œ€์‹  parseInt๋กœ ํ•ด๋„ ๊ฒฐ๊ณผ ๋™์ผํ•˜๊ฒŒ ๋‚˜์˜ค์ง€๋งŒ 
// ๊ณ„์‚ฐ ๊ฒฐ๊ณผ๊ฐ€ ์ˆซ์ž๊ฐ€ ๋‚˜์™€์•ผํ•˜๋‹ˆ Math.floor๊ฐ€ ๋” ์ ํ•ฉํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•จ

// parseInt
// 1. number -> string
// 2. 10์ง„์ˆ˜ ์ถ”๋ก ์„ ์œ„ํ•ด string ์•ž ๋‘๊ธ€์ž๊ฐ€ 0x ๋‚˜ 0X ์ธ์ง€ ๋น„๊ต

๐Ÿ“Ž Math.floor() : ์ฃผ์–ด์ง„ ์ˆซ์ž์™€ ๊ฐ™๊ฑฐ๋‚˜ ์ž‘์€ ์ •์ˆ˜ ์ค‘์—์„œ ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Ž parseInt() : ๋ฌธ์ž์—ด ์ธ์ž๋ฅผ ํŒŒ์‹ฑํ•˜์—ฌ ํŠน์ • ์ง„์ˆ˜(์ˆ˜์˜ ์ง„๋ฒ• ์ฒด๊ณ„์—์„œ ๊ธฐ์ค€์ด ๋˜๋Š” ๊ฐ’)์˜ ์ •์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.


2. ์ˆซ์ž ๋น„๊ตํ•˜๊ธฐ

๐Ÿ’Ÿ ๋ฌธ์ œ ์„ค๋ช…

  • ์ •์ˆ˜ num1๊ณผ num2๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ๋‘ ์ˆ˜๊ฐ€ ๊ฐ™์œผ๋ฉด 1 ๋‹ค๋ฅด๋ฉด -1์„ retrunํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

๐Ÿ’Ÿ ์ œํ•œ ์‚ฌํ•ญ

  • 0 โ‰ค num1 โ‰ค 10,000
  • 0 โ‰ค num2 โ‰ค 10,000

๐Ÿ’Ÿ ์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

  • ์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช… #1
    num1์ด 2์ด๊ณ  num2๊ฐ€ 3์ด๋ฏ€๋กœ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ -1์„ returnํ•ฉ๋‹ˆ๋‹ค.

  • ์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช… #2
    num1์ด 11์ด๊ณ  num2๊ฐ€ 11์ด๋ฏ€๋กœ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 1์„ returnํ•ฉ๋‹ˆ๋‹ค.

  • ์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช… #3
    num1์ด 7์ด๊ณ  num2๊ฐ€ 99์ด๋ฏ€๋กœ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ -1์„ returnํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ–๏ธ solution.js

// 1. ๋‘ ์ˆ˜๊ฐ€ ๊ฐ™์€์ง€ ๋น„๊ต
// 2. ๊ฒฐ๊ณผ ๊ฐ’์— ๋”ฐ๋ผ 1 ๋˜๋Š” -1 ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ (if๋ฌธ)

function solution(num1, num2) {
  if ( num1 === num2 ) {
     return 1;
  } else {
     return -1;
  }
}

๐Ÿ“Œ if
if (true/false) {
  // true ์ผ๋•Œ ์‹คํ–‰๋  ์ฝ”๋“œ
}
๐Ÿ“Œ if...else
if (true/false) {
  // true ์ผ๋•Œ ์‹คํ–‰๋  ์ฝ”๋“œ
} else {
  // false ์ผ๋•Œ ์‹คํ–‰๋  ์ฝ”๋“œ
}

๐Ÿ“Ž if...else : ์ง€์ •ํ•œ ์กฐ๊ฑด์ด ์ฐธ์ธ ๊ฒฝ์šฐ ๋ช…๋ น๋ฌธ(statement)์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์กฐ๊ฑด์ด ๊ฑฐ์ง“์ธ ๊ฒฝ์šฐ ๋˜ ๋‹ค๋ฅธ ๋ช…๋ น๋ฌธ์ด ์‹คํ–‰ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


3. ๋ถ„์ˆ˜์˜ ๋ง์…ˆ

๐Ÿ’Ÿ ๋ฌธ์ œ ์„ค๋ช…

  • ์ฒซ ๋ฒˆ์งธ ๋ถ„์ˆ˜์˜ ๋ถ„์ž์™€ ๋ถ„๋ชจ๋ฅผ ๋œปํ•˜๋Š” numer1, denom1, ๋‘ ๋ฒˆ์งธ ๋ถ„์ˆ˜์˜ ๋ถ„์ž์™€ ๋ถ„๋ชจ๋ฅผ ๋œปํ•˜๋Š” numer2, denom2๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ๋‘ ๋ถ„์ˆ˜๋ฅผ ๋”ํ•œ ๊ฐ’์„ ๊ธฐ์•ฝ ๋ถ„์ˆ˜๋กœ ๋‚˜ํƒ€๋ƒˆ์„ ๋•Œ ๋ถ„์ž์™€ ๋ถ„๋ชจ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ๋‹ด์€ ๋ฐฐ์—ด์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด๋ณด์„ธ์š”.

๐Ÿ’Ÿ ์ œํ•œ ์‚ฌํ•ญ

  • 0 <numer1, denom1, numer2, denom2 < 1,000

๐Ÿ’Ÿ ์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

  • ์ž…์ถœ๋ ฅ ์˜ˆ #1
    1 / 2 + 3 / 4 = 5 / 4์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ [5, 4]๋ฅผ return ํ•ฉ๋‹ˆ๋‹ค.

  • ์ž…์ถœ๋ ฅ ์˜ˆ #2
    9 / 2 + 1 / 3 = 29 / 6์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ [29, 6]์„ return ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ–๏ธ solution.js

// 1. ๋ถ„๋ชจ๋ง์…ˆ
// 2. ๋ถ„์ž,๋ถ„๋ชจ์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋กœ ๋‚˜๋ˆ ์คŒ
// 2-1. ๋ถ„์ž,๋ถ„๋ชจ ์ค‘ ์ž‘์€ ์ˆ˜๋ฅผ ์ฐพ๊ธฐ
// 2-2. ์ž‘์€์ˆ˜๋ฅผ ๋ถ„์ž,๋ถ„๋ชจ ๋‚˜๋ˆ ๋ณด๊ธฐ
// 2-2-1. ๋‘˜๋‹ค ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋ฉด ๊ทธ ๋‚˜๋ˆˆ ์ˆ˜๊ฐ€ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜
// 2-2-2. ์•ˆ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋ฉด ์ž‘์€ ์ˆ˜๋ฅผ 1๋กœ ์ค„์ด๊ณ  2-2.๋กœ ๋Œ์•„๊ฐ€๊ธฐ

function solution(numer1, denom1, numer2, denom2) {
  var answer = [];
  const numer = numer1 * denom2 + numer2 * denom1;
  const denom = denom1 * denom2;  
  
  let minNumber;
  if (denum < num) {
      minNumber = denum;
  } else {
      minNumber = num;
  }
  // ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” ๊ฒƒ โ†’ ๋‚˜๋จธ์ง€๊ฐ€ 0์ธ ๊ฒƒ
  while (true) {
    if (denum % minNumber === 0) {
      if (num % minNumber === 0) {
        return [denum / minNumber, num / minNumber];
      }
  	} 
    minNumber = minNumber - 1;
    // minNumber ์—๋Š” ์ž‘์€ ์ˆ˜๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ์Œ
   }
   return answer;
 }

๐Ÿ“Œ while
while (true) {
  // true์ธ ๋™์•ˆ ๊ณ„์† ๋ฐ˜๋ณต ์‹คํ–‰
}
  // false ์ผ๋•Œ ๋น ์ ธ๋‚˜๊ฐ

๐Ÿ“Ž while : ์กฐ๊ฑด๋ฌธ์ด ์ฐธ์ผ ๋•Œ ์‹คํ–‰๋˜๋Š” ๋ฐ˜๋ณต๋ฌธ์ด๋‹ค. ์กฐ๊ฑด์€ ๋ฌธ์žฅ์•ˆ์ด ์‹คํ–‰๋˜๊ธฐ ์ „์— ์ฐธ, ๊ฑฐ์ง“์„ ํŒ๋‹จํ•œ๋‹ค.


4. ๋ฐฐ์—ด ๋‘ ๋ฐฐ ๋งŒ๋“ค๊ธฐ

๐Ÿ’Ÿ ๋ฌธ์ œ ์„ค๋ช…

  • ์ •์ˆ˜ ๋ฐฐ์—ด numbers๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. numbers์˜ ๊ฐ ์›์†Œ์— ๋‘๋ฐฐํ•œ ์›์†Œ๋ฅผ ๊ฐ€์ง„ ๋ฐฐ์—ด์„ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

๐Ÿ’Ÿ ์ œํ•œ ์‚ฌํ•ญ

  • -10,000 โ‰ค numbers์˜ ์›์†Œ โ‰ค 10,000
  • 1 โ‰ค numbers์˜ ๊ธธ์ด โ‰ค 1,000

๐Ÿ’Ÿ ์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

  • ์ž…์ถœ๋ ฅ ์˜ˆ #1
    [1, 2, 3, 4, 5]์˜ ๊ฐ ์›์†Œ์— ๋‘๋ฐฐ๋ฅผ ํ•œ ๋ฐฐ์—ด [2, 4, 6, 8, 10]์„ returnํ•ฉ๋‹ˆ๋‹ค.

  • ์ž…์ถœ๋ ฅ ์˜ˆ #2
    [1, 2, 100, -99, 1, 2, 3]์˜ ๊ฐ ์›์†Œ์— ๋‘๋ฐฐ๋ฅผ ํ•œ ๋ฐฐ์—ด [2, 4, 200, -198, 2, 4, 6]์„ returnํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ–๏ธ solution.js

// 1. numbers์—์„œ ์›์†Œ๋ฅผ ๊บผ๋‚ด์•ผํ•จ.
// 2. ์›์†Œ๋ฅผ ๊บผ๋‚ด 2๋ฐฐ๋ฅผ ํ•œ ํ›„ ์ƒˆ ๋ฐฐ์—ด์— ๋„ฃ์–ด์ค˜์•ผํ•จ.

// numbers [1,2,3,4,5]
// numbers [0]

// answer.push();  method ์‚ฌ์šฉ
// push ํšŸ์ˆ˜ ? ๋ฐฐ์—ด์˜ ๊ธธ์ด ๋งŒํผ   

๐Ÿ“ while
function solution(numbers) {
    var answer = [];
    let cnt = 0;
    while(cnt < numbers.length) {
      answer.push(numbers[cnt] * 2);  
      cnt = cnt + 1;
    }
    return answer;
}

๐Ÿ“ for
function solution(numbers) {
  var answer = [];
  for (let cnt = 0; cnt < numbers.lengths; cnt = cnt + 1) {
    answer.push(numbers[cnt] * 2);
  }
  return answer;
}
profile
โœง ์ค‘์š”ํ•œ๊ฑด ๊บพ์ด์ง€ ์•Š๋Š” ๋งˆ์Œ ๐Ÿ”ฅ แ•™(โ€ขำฉโ€ข)แ•ค ๐Ÿ”ฅ

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