[TIL]_Code Kata (day2)

quokkaยท2021๋…„ 10์›” 19์ผ
0

Algorithm - codekata

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

๐ŸŒˆ ๋งค์ผ ์•„์นจ 10์‹œ์—์„œ 11์‹œ๊นŒ์ง€ code kata(์•Œ๊ณ ๋ฆฌ์ฆ˜) ๋ฌธ์ œ๋ฅผ ํ’€๋ฉด์„œ ๋ฌธ์ œ ํ‘ธ๋Š” ๋Šฅ๋ ฅ์„ ๊ธฐ๋ฅด๊ณ  ์ƒ๊ฐํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ง„๋‹ค.

  • ๋‹ต ๋งž์ถ”๊ธฐ
  • ์ปดํ“จํŒ… ์‚ฌ๊ณ  / ๋ฌธ์ œ ํ•ด๊ฒฐ ์—ญ๋Ÿ‰ ๋ณด์—ฌ์ฃผ๊ธฐ
  • pair programming / communication / driver & navigator
  • ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋ฅผ, ์ƒ๊ฐํ•˜๋Š” ๋กœ์ง์„ ์ •ํ™•ํ•œ ์šฉ์–ด์™€ ํ•จ๊ป˜ ๋ง๋กœ ์„ค๋ช…ํ•˜๋Š” ์—ฐ์Šต

๐Ÿ’Ž Day2. ๋ฌธ์ œ
Q. reverse ํ•จ์ˆ˜์— ์ •์ˆ˜์ธ ์ˆซ์ž๋ฅผ ์ธ์ž๋กœ ๋ฐ›์Šต๋‹ˆ๋‹ค. ๊ทธ ์ˆซ์ž๋ฅผ ๋’ค์ง‘์–ด์„œ returnํ•ด์ฃผ์„ธ์š”.
x: ์ˆซ์ž return: ๋’ค์ง‘์–ด์ง„ ์ˆซ์ž๋ฅผ ๋ฐ˜ํ™˜!
์˜ˆ๋“ค ๋“ค์–ด, x: 1234 return: 4321
x: -1234 return: -4321
x: 1230 return: 321


๐Ÿคฏ ์›๋ž˜ ์ž‘์„ฑํ•œ ์ฝ”๋“œ

const reverse = x => {
  // ์—ฌ๊ธฐ์— ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.
  let arr = x.toString().split('').reverse();
  console.log(arr)
}

๐Ÿ‘‰ x์— ๋“ค์–ด์˜ค๋Š” ์ธ์ž ๊ฐ’์„ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•ด์•ผ ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•ด์„œ toString()๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ–ˆ๊ณ , ํ•œ ์ˆซ์ž๋งˆ๋‹ค ์ชผ๊ฐœ๋ ค๊ณ  split("")๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ–ˆ๊ณ , ๋ฐฐ์—ด์— ์ˆซ์ž๋“ค์„ ๊ฑฐ๊พธ๋กœ ๋’ค์ง‘์–ด์•ผ๋˜์„œ reverse()๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๊ฒƒ ๊นŒ์ง€ ์ƒ๊ฐํ•ด๋ณด์•˜๋‹ค. ๊ทธ๋‹ค์Œ ์ฝ”๋“œ๋ถ€ํ„ฐ ๋ง‰ํ˜€์„œ ๊ตฌ๊ธ€๋ง์„ ํ•˜๊ณ , ๋™๊ธฐ๋“คํ•œํ…Œ ๋ฌผ์–ด๋ณด๋ฉด์„œ ์ •๋‹ต์„ ๋„์ถœํ•ด ๋ณด์•˜๊ณ  ๋‹ค์‹œ ์ฝ”๋“œ๋ฅผ ์งœ ๋ณด์•˜๋‹ค. ๐Ÿ‘‡

โœ๏ธ ๋ฌธ์ œ ์ •๋‹ต ์ฝ”๋“œ

const reverse = x => {
  // ์—ฌ๊ธฐ์— ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.
  let arr = x.toString().split('').reverse();
  console.log(arr)
  // let newArr = [];
  if (arr[arr.length - 1] === '-'){
    arr.pop();
    arr.unshift('-');
  }
  else if (arr[0] === 0){
    arr.shift(); 
  }

  return Number(arr.join(''))
}

๐Ÿ“Œ ์ด ์ฝ”๋“œ๋ฅผ ๋‹ค์‹œ ํ’€์–ด๋ณด๋ฉด์„œ pop()๋ฉ”์„œ๋“œ, unshift()๋ฉ”์„œ๋“œ, shift()์— ๋Œ€ํ•ด์„œ ๋‹ค์‹œ ๊ณต๋ถ€ํ•ด๋ณด๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์กŒ๋‹ค.
๐ŸŒ€ pop()๋ฉ”์„œ๋“œ ๐Ÿ‘‰ ๋ฐฐ์—ด์—์„œ ํ•ด๋‹น ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๊ทธ ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
๐ŸŒ€ unshift()๋ฉ”์„œ๋“œ ๐Ÿ‘‰ ์ƒˆ๋กœ์šด ์š”์†Œ๋ฅผ ๋ฐฐ์—ด์˜ ๋งจ ์•ž์ชฝ์— ์ถ”๊ฐ€ํ•˜๊ณ , ์ƒˆ๋กœ์šด ๊ธธ์ด๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
๐ŸŒ€ shift()๋ฉ”์„œ๋“œ ๐Ÿ‘‰ ๋ฐฐ์—ด์—์„œ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ , ์ œ๊ฑฐ๋œ ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฉ”์„œ๋“œ๋Š” ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ๋ณ€ํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

โœ… ๊ทธ๋ž˜์„œ arr ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค๊ฐ€ '-'์™€ ๊ฐ™๋‹ค๋ฉด pop๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ•ด๋‹น ์š”์†Œ์ธ '-'์ œ๊ฑฐํ•˜๊ณ  ๋‹ค์‹œ ๋ฐ˜ํ™˜์‹œํ‚จ ํ›„์— unshift๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด์˜ ๋งจ ์•ž์ชฝ์— '-'๋ฅผ ์ถ”๊ฐ€ํ–ˆ๋‹ค. arr๋ฐฐ์—ด์— 0๋ฒˆ์งธ ์ธ๋ฑ์Šค๊ฐ€ ์ˆซ์ž 0๊ณผ ๊ฐ™๋‹ค๋ฉด shift๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ฒซ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ–ˆ๋‹ค.

profile
๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป ๋งค์ผ๋งค์ผ์ด ๊ธฐ๋Œ€๋˜๋Š” ๊ฐœ๋ฐœ์ž ^^

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