[Day 9] ๐Ÿ”ฅ ์ž…๋ฌธ - ์ˆ˜ํ•™, ๋ฌธ์ž์—ด, ํ•ด์‹œ, ์™„์ „ํƒ์ƒ‰, ์กฐ๊ฑด๋ฌธ

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

๐Ÿ”ฅ Programmers

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

1. ๊ฐœ๋ฏธ๊ตฐ๋‹จ

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

  • ๊ฐœ๋ฏธ ๊ตฐ๋‹จ์ด ์‚ฌ๋ƒฅ์„ ๋‚˜๊ฐ€๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฏธ๊ตฐ๋‹จ์€ ์‚ฌ๋ƒฅ๊ฐ์˜ ์ฒด๋ ฅ์— ๋”ฑ ๋งž๋Š” ๋ณ‘๋ ฅ์„ ๋ฐ๋ฆฌ๊ณ  ๋‚˜๊ฐ€๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์žฅ๊ตฐ๊ฐœ๋ฏธ๋Š” 5์˜ ๊ณต๊ฒฉ๋ ฅ์„, ๋ณ‘์ •๊ฐœ๋ฏธ๋Š” 3์˜ ๊ณต๊ฒฉ๋ ฅ์„ ์ผ๊ฐœ๋ฏธ๋Š” 1์˜ ๊ณต๊ฒฉ๋ ฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ฒด๋ ฅ 23์˜ ์—ฌ์น˜๋ฅผ ์‚ฌ๋ƒฅํ•˜๋ ค๊ณ  ํ•  ๋•Œ, ์ผ๊ฐœ๋ฏธ 23๋งˆ๋ฆฌ๋ฅผ ๋ฐ๋ฆฌ๊ณ  ๊ฐ€๋„ ๋˜์ง€๋งŒ, ์žฅ๊ตฐ๊ฐœ๋ฏธ ๋„ค ๋งˆ๋ฆฌ์™€ ๋ณ‘์ •๊ฐœ๋ฏธ ํ•œ ๋งˆ๋ฆฌ๋ฅผ ๋ฐ๋ฆฌ๊ณ  ๊ฐ„๋‹ค๋ฉด ๋” ์ ์€ ๋ณ‘๋ ฅ์œผ๋กœ ์‚ฌ๋ƒฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ๋ƒฅ๊ฐ์˜ ์ฒด๋ ฅ hp๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ์‚ฌ๋ƒฅ๊ฐ์˜ ์ฒด๋ ฅ์— ๋”ฑ ๋งž๊ฒŒ ์ตœ์†Œํ•œ์˜ ๋ณ‘๋ ฅ์„ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด ๋ช‡ ๋งˆ๋ฆฌ์˜ ๊ฐœ๋ฏธ๊ฐ€ ํ•„์š”ํ•œ์ง€๋ฅผ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

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

  • hp๋Š” ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.
  • 0 โ‰ค hp โ‰ค 1000

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

  • ์ž…์ถœ๋ ฅ ์˜ˆ #1
    hp๊ฐ€ 23์ด๋ฏ€๋กœ, ์žฅ๊ตฐ๊ฐœ๋ฏธ ๋„ค๋งˆ๋ฆฌ์™€ ๋ณ‘์ •๊ฐœ๋ฏธ ํ•œ๋งˆ๋ฆฌ๋กœ ์‚ฌ๋ƒฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 5๋ฅผ returnํ•ฉ๋‹ˆ๋‹ค.

  • ์ž…์ถœ๋ ฅ ์˜ˆ #2
    hp๊ฐ€ 24์ด๋ฏ€๋กœ, ์žฅ๊ตฐ๊ฐœ๋ฏธ ๋„ค๋งˆ๋ฆฌ ๋ณ‘์ •๊ฐœ๋ฏธ ํ•œ๋งˆ๋ฆฌ ์ผ๊ฐœ๋ฏธ ํ•œ๋งˆ๋ฆฌ๋กœ ์‚ฌ๋ƒฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 6์„ returnํ•ฉ๋‹ˆ๋‹ค.

  • ์ž…์ถœ๋ ฅ ์˜ˆ #3
    hp๊ฐ€ 999์ด๋ฏ€๋กœ, ์žฅ๊ตฐ๊ฐœ๋ฏธ 199 ๋งˆ๋ฆฌ ๋ณ‘์ •๊ฐœ๋ฏธ ํ•œ๋งˆ๋ฆฌ ์ผ๊ฐœ๋ฏธ ํ•œ๋งˆ๋ฆฌ๋กœ ์‚ฌ๋ƒฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 201์„ returnํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ–๏ธ solution.js

function solution(hp) {
  let cnt = 0;
  if (hp >= 5) {
    cnt += Math.floor(hp / 5);
    hp -= Math.floor(hp / 5) * 5;
  } if (hp >= 3) {
    cnt += Math.floor(hp / 3);
    hp -= Math.floor(hp / 3) * 3;
  } if (hp >= 1) {
    cnt += Math.floor(hp / 1);
    hp -= Math.floor(hp / 1) * 1;
  }
  return cnt;
}

๐Ÿ–๏ธ solution.js ( for๋ฌธ )

function solution(hp) {
  let cnt = 0;
  let arr = [5, 3, 1];
 
  for (let i = 0; i < arr.length; i++) {
    let item = arr[i];
    if (hp >= item) {
      cnt += Math.floor(hp / item);
      hp -= Math.floor(hp / item) * item;
      }
  }
  return cnt;
}

2. ๋ชจ์Šค๋ถ€ํ˜ธ (1)

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

  • ๋จธ์“ฑ์ด๋Š” ์นœ๊ตฌ์—๊ฒŒ ๋ชจ์Šค๋ถ€ํ˜ธ๋ฅผ ์ด์šฉํ•œ ํŽธ์ง€๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋ƒฅ์€ ์ฝ์„ ์ˆ˜ ์—†์–ด ์ด๋ฅผ ํ•ด๋…ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด letter๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, letter๋ฅผ ์˜์–ด ์†Œ๋ฌธ์ž๋กœ ๋ฐ”๊พผ ๋ฌธ์ž์—ด์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด๋ณด์„ธ์š”.
    ๋ชจ์Šค๋ถ€ํ˜ธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

  • 1 โ‰ค letter์˜ ๊ธธ์ด โ‰ค 1,000
  • return๊ฐ’์€ ์†Œ๋ฌธ์ž์ž…๋‹ˆ๋‹ค.
  • letter์˜ ๋ชจ์Šค๋ถ€ํ˜ธ๋Š” ๊ณต๋ฐฑ์œผ๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
  • letter์— ๊ณต๋ฐฑ์€ ์—ฐ์†์œผ๋กœ ๋‘ ๊ฐœ ์ด์ƒ ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ํ•ด๋…ํ•  ์ˆ˜ ์—†๋Š” ํŽธ์ง€๋Š” ์ฃผ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ํŽธ์ง€์˜ ์‹œ์ž‘๊ณผ ๋์—๋Š” ๊ณต๋ฐฑ์ด ์—†์Šต๋‹ˆ๋‹ค.

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

  • ์ž…์ถœ๋ ฅ ์˜ˆ #1
    .... = h
    . = e
    .-.. = l
    .-.. = l
    --- = o
    ๋”ฐ๋ผ์„œ "hello"๋ฅผ return ํ•ฉ๋‹ˆ๋‹ค.

  • ์ž…์ถœ๋ ฅ ์˜ˆ #2
    .--. = p
    -.-- = y
    - = t
    .... = h
    --- = o
    -. = n
    ๋”ฐ๋ผ์„œ "python"์„ return ํ•ฉ๋‹ˆ๋‹ค.

  • a ~ z์— ํ•ด๋‹นํ•˜๋Š” ๋ชจ์Šค๋ถ€ํ˜ธ๊ฐ€ ์ˆœ์„œ๋Œ€๋กœ ๋‹ด๊ธด ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค.
    {".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."}

๐Ÿ–๏ธ solution.js

const morse = { 
    '.-':'a',
    '-...':'b',
    '-.-.':'c',
    '-..':'d',
    '.':'e',
    '..-.':'f',
    '--.':'g',
    '....':'h',
    '..':'i',
    '.---':'j',
    '-.-':'k',
    '.-..':'l',
    '--':'m',
    '-.':'n',
    '---':'o',
    '.--.':'p',
    '--.-':'q',
    '.-.':'r',
    '...':'s'
    ,'-':'t',
    '..-':'u',
    '...-':'v',
    '.--':'w',
    '-..-':'x',
    '-.--':'y',
    '--..':'z'
}

function solution(letter) {
  let currentMorse = '';
  let answer = '';
  for (let i = 0; i < letter.length; i++) {
    const item = letter[i];
    if (item === ' ') {
      answer += morse[currentMorse];
      currentMorse = '';
    } else {
      currentMorse += item;
    }
  }
  answer += morse[currentMorse];
  return answer; 
}

๐Ÿ–๏ธ solution.js (split ๋ฉ”์†Œ๋“œ)

function solution(letter) {
  let answer = '';
  const splittedLetter = letter.split (' ');
  for (let i = 0; i < splittedLetter.length; i++) {
    answer += morse[splittedLetter[i]];
  }
  return answer; 
}

3. ๊ฐ€์œ„ ๋ฐ”์œ„ ๋ณด

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

  • ๊ฐ€์œ„๋Š” 2 ๋ฐ”์œ„๋Š” 0 ๋ณด๋Š” 5๋กœ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์œ„ ๋ฐ”์œ„ ๋ณด๋ฅผ ๋‚ด๋Š” ์ˆœ์„œ๋Œ€๋กœ ๋‚˜ํƒ€๋‚ธ ๋ฌธ์ž์—ด rsp๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, rsp์— ์ €์žฅ๋œ ๊ฐ€์œ„ ๋ฐ”์œ„ ๋ณด๋ฅผ ๋ชจ๋‘ ์ด๊ธฐ๋Š” ๊ฒฝ์šฐ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ๋‚˜ํƒ€๋‚ธ ๋ฌธ์ž์—ด์„ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด๋ณด์„ธ์š”.

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

  • 0 < rsp์˜ ๊ธธ์ด โ‰ค 100
  • rsp์™€ ๊ธธ์ด๊ฐ€ ๊ฐ™์€ ๋ฌธ์ž์—ด์„ return ํ•ฉ๋‹ˆ๋‹ค.
  • rsp๋Š” ์ˆซ์ž 0, 2, 5๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

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

  • ์ž…์ถœ๋ ฅ ์˜ˆ #1
    "2"๋Š” ๊ฐ€์œ„์ด๋ฏ€๋กœ ๋ฐ”์œ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” "0"์„ return ํ•ฉ๋‹ˆ๋‹ค.

  • ์ž…์ถœ๋ ฅ ์˜ˆ #2
    "205"๋Š” ์ˆœ์„œ๋Œ€๋กœ ๊ฐ€์œ„, ๋ฐ”์œ„, ๋ณด์ด๊ณ  ์ด๋ฅผ ๋ชจ๋‘ ์ด๊ธฐ๋ ค๋ฉด ๋ฐ”์œ„, ๋ณด, ๊ฐ€์œ„๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ๋‚ด์•ผํ•˜๋ฏ€๋กœ โ€œ052โ€๋ฅผ returnํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ–๏ธ solution.js

function solution(rsp) {
  var answer = '';
  for (let i = 0; i < rsp.length; i++) {
    const item = rsp[i];
    if (item === "2") {
      answer += "0";
    }
    if (item === "0") {
      answer += "5";
    }
    if (item === "5") {
      answer += "2";
    }
  }
  return answer;
}

๐Ÿ–๏ธ solution.js ( ๊ฐ์ฒด ํ™œ์šฉ )

const win = {
  "2" : "0",
  "0" : "5",
  "5" : "2", 
}

function solution(rsp) {
  var answer = '';
  for (let i = 0; i < rsp.length; i++) {
    const item = rsp[i];
    answer += win[item];
  }
  return answer;
}

4. ๊ตฌ์Šฌ์„ ๋‚˜๋ˆ„๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜

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

  • ๋จธ์“ฑ์ด๋Š” ๊ตฌ์Šฌ์„ ์นœ๊ตฌ๋“ค์—๊ฒŒ ๋‚˜๋ˆ„์–ด์ฃผ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์Šฌ์€ ๋ชจ๋‘ ๋‹ค๋ฅด๊ฒŒ ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค. ๋จธ์“ฑ์ด๊ฐ€ ๊ฐ–๊ณ  ์žˆ๋Š” ๊ตฌ์Šฌ์˜ ๊ฐœ์ˆ˜ balls์™€ ์นœ๊ตฌ๋“ค์—๊ฒŒ ๋‚˜๋ˆ„์–ด ์ค„ ๊ตฌ์Šฌ ๊ฐœ์ˆ˜ share์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, balls๊ฐœ์˜ ๊ตฌ์Šฌ ์ค‘ share๊ฐœ์˜ ๊ตฌ์Šฌ์„ ๊ณ ๋ฅด๋Š” ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

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

  • 1 โ‰ค balls โ‰ค 30
  • 1 โ‰ค share โ‰ค 30
  • ๊ตฌ์Šฌ์„ ๊ณ ๋ฅด๋Š” ์ˆœ์„œ๋Š” ๊ณ ๋ คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • share โ‰ค balls

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

  • ์ž…์ถœ๋ ฅ ์˜ˆ #1
    ์„œ๋กœ ๋‹ค๋ฅธ ๊ตฌ์Šฌ 3๊ฐœ ์ค‘ 2๊ฐœ๋ฅผ ๊ณ ๋ฅด๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋Š” 3์ž…๋‹ˆ๋‹ค.

  • ์ž…์ถœ๋ ฅ ์˜ˆ #2
    ์„œ๋กœ ๋‹ค๋ฅธ ๊ตฌ์Šฌ 5๊ฐœ ์ค‘ 3๊ฐœ๋ฅผ ๊ณ ๋ฅด๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋Š” 10์ž…๋‹ˆ๋‹ค.

โœ… Hint

์„œ๋กœ ๋‹ค๋ฅธ n๊ฐœ ์ค‘ m๊ฐœ๋ฅผ ๋ฝ‘๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜ ๊ณต์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๐Ÿ–๏ธ solution.js

function solution(balls, share) {
    var answer = 0;
    
    const n = balls;
    const r = share;
    
    let one = 1;
    for (let i = n; i >= n-r+1; i--) {
        one *= i; 
    }
    let two = 1;
    for (let i = n-r; i >= 1; i--) {
        two *= i; 
    }
    let three = 1;
    for (let i = r; i >= 1; i--) {
        three *= i; 
    }
    answer = Math.floor(one / three)
    return answer;
}
profile
โœง ์ค‘์š”ํ•œ๊ฑด ๊บพ์ด์ง€ ์•Š๋Š” ๋งˆ์Œ ๐Ÿ”ฅ แ•™(โ€ขำฉโ€ข)แ•ค ๐Ÿ”ฅ

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