[ TIL 32 ] Code-Kata day-2

_dodo_heeยท2021๋…„ 3์›” 31์ผ
0

ALGORITHM

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

Code Kata ๋ฌธ์ œ ๐Ÿ“œ

reverse ํ•จ์ˆ˜์— ์ •์ˆ˜์ธ ์ˆซ์ž๋ฅผ ์ธ์ž๋กœ ๋ฐ›์Šต๋‹ˆ๋‹ค.
๊ทธ ์ˆซ์ž๋ฅผ ๋’ค์ง‘์–ด์„œ returnํ•ด์ฃผ์„ธ์š”.

๋ฌธ์ œ๋ฅผ ์ดํ•ดํ•ด๋ณด์ž ๐Ÿง

๋งจ์ฒ˜์Œ์— ๋ฌธ์ œ๋Š” ์ดํ•ดํ–ˆ์—ˆ๋‹ค. ๋ฌธ์ž์—ด์ด๋‚˜, ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค์–ด์„œ ์ˆœ์„œ๋ฅผ ๋ฐ˜๋Œ€๋กœ ๋’ค์ง‘๋Š” ๊ฑด๋ฐ..
๋‚ด๊ฐ€ ๋ฐฐ์—ด๋กœ ๋งŒ๋“œ๋Š” ๋ฒ•์„ ๋ชฐ๋ž์—ˆ๊ณ , ๋’ค์ง‘๋Š” ๋ฐฉ๋ฒ•์„ ๋ชฐ๋ผ์„œ ํ•œ์ฐธ์„ ๊ณ ๋ฏผํ•˜๋‹ค
๊ตฌ๊ธ€์—์„œ reverse๋ผ๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ๋‹ค.

Code Kata ์ฒซ๋ฒˆ์งธ ์‹œ๋„ ๐Ÿ’ก

const reverse = x => {
  const string = x+"";
  const result = string.split('').reverse().join('');
  return result;
}

console.log(reverse(4321)); //1234

์ฒซ๋ฒˆ์งธ ์‹œ๋„ review โœ๏ธ

์ธ์ž ๊ฐ’์ด ์ˆซ์ž์ธ ๊ฐ’์„ ๋ฌธ์ž์—ด๋กœ ๋งŒ๋“ค์–ด์ฃผ๊ณ ,
result๋ผ๋Š” ๋ณ€์ˆ˜๊ฐ’์— ๋ฌธ์ž์—ด์˜ split์œผ๋กœ ๋ฌธ์ž๋ฅผ ํ•˜๋‚˜ํ•˜๋‚˜ ์ชผ๊ฐœ์ฃผ๊ณ ,
์ˆœ์„œ๋ฅผ reverse๋กœ ๋ฐ˜์ „ ์‹œ์ผœ์ค€ ๋‹ค์Œ,
join์œผ๋กœ ๋ถ™์—ฌ์ฃผ๊ณ  result๊ฐ’์„ ๋ฆฌํ„ด์‹œ์ผœ๋ผ
๋ผ๋Š” ๊ตฌ์กฐ๋ฅผ ์ƒ๊ฐํ–ˆ๋‹ค.

Code Kata ๋‘๋ฒˆ์งธ ์‹œ๋„ ๐Ÿ’ก

const reverse = x => {
  	const string = x+"";
	for(let i = 0; i < x.length; i++){
	reverse = x.split('')[i]+string;
}

๋‘๋ฒˆ์งธ ์‹œ๋„ review โœ๏ธ

x๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜๊ณ 
for๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ i๋Š” 0์ด๊ณ  i๋Š” x์˜ ๊ธธ์ด ๋งŒํผ ๋ฐ˜๋ณต์‹œํ‚ค๊ณ  ๋งž๋‹ค๋ฉด ์ฆ๊ฐ€์‹œ์ผœ๋ผ.
reverse์˜ ๊ฐ’์— x์˜ ๋ฌธ์ž๋ฅผ ํ•˜๋‚˜ํ•˜๋‚˜์”ฉ ์ชผ๊ฐœ์ค€ ์ธ๋ฑ์Šค๊ฐ’์„ ๋ฌธ์ž์—ด๋กœ ๋งŒ๋“ค์–ด๋ผ.
(์ด๊ฒŒ ๋Œ€์ฒด ์–ด์ฉŒ๋‹ค ๋‚˜์˜ค๊ฒŒ ๋œ ์ฝ”๋“œ์ผ๊นŒ..๋‚ด ๋จธ๋ฆฟ์†์ด ๋„ˆ๋ฌด ๊ถ๊ธˆํ•˜๋‹คใ…Ž)

Code Kata ์„ธ๋ฒˆ์งธ ์‹œ๋„ ๐Ÿ’ก

const reverse = x => {
  // ์—ฌ๊ธฐ์— ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.
  str = x.toString().split('').reverse();
  if (str[str.length-1] == '-'){
    str.pop();
    str.unshift('-');
  } return Number(str.join(''));
}

์„ธ๋ฒˆ์งธ ์‹œ๋„ review โœ๏ธ

str์ด๋ผ๋Š” ๋ณ€์ˆ˜์— ์ฒซ๋ฒˆ์งธ์‹œ๋„ํ–ˆ๋˜ ๋ฐฉ๋ฒ•๊ณผ ์•„์ฃผ ์œ ์‚ฌํ•˜๊ฒŒ
x๋Š” ๋ฌธ์ž์—ด๋กœ ๋ฐ”๊ฟ”์ฃผ๊ณ  ๊ทธ๊ฑธ ๋ฌธ์žํ•˜๋‚˜ํ•˜๋‚˜ ์ชผ๊ฐœ์ฃผ๊ณ  ๋ฐฐ์—ด์„ ๋’ค์ง‘์–ด์ค€๋‹ค.
๋งŒ์•ฝ์— str์˜ ์ธ๋ฑ์Šค๊ฐ’์— - ์žˆ์œผ๋ฉด str๋ฅผ ๋นผ๋‚ด์ฃผ๊ณ 
str์— ๋งจ์•ž์— ๋ฌธ์ž๋กœ ์ธ์‹๋˜๋Š” (-)๋ฅผ ๋ถ™์—ฌ์ค˜๋ผ
์•ž์— -๊ฐ€ ์—†๋‹ค๋ฉด ์ˆซ์ž๋ฅผ number๋กœ ๋ฐ”๊ฟ”์„œ 0์ด ์ถœ๋ ฅ๋  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด๋ผ.

์ƒ๊ฐ๋ณด๋‹ค ๋ฉ”์„œ๋“œ๊ฐ€ ๋งŽ์ด ํ•„์š”ํ–ˆ๋˜ ๋ฌธ์ œ์˜€๋‹ค..๐Ÿ˜ฉ
๋ฉ”์„œ๋“œ๋ฅผ ์ž˜ ์™ธ์šฐ์งˆ ์•Š์•˜์–ด์„œ ๋ฌธ์ œ๋ฅผ ํ’€๋•Œ ์–ด๋ ค์šด๋ถ€๋ถ„์ด ์ €๋Ÿฐ ๋ถ€๋ถ„์ธ ๊ฒƒ ๊ฐ™๋‹ค..
์–ด๋–ป๊ฒŒ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ’€์–ด์•ผํ• ์ง€ ๋„ˆ๋ฌด ์–ด๋ ค์šด ๊ฒƒ ๊ฐ™๋‹ค.

์ƒˆ๋กœ์šด ์•Œ๊ฒŒ ๋œ ๋ฉ”์„œ๋“œ ๐Ÿ“Œ

๋‚ด๊ฐ€ ์ด๋ฒˆ ๋ฌธ์ œ๋ฅผ ํ’€๋ฉด์„œ ์•Œ๊ฒŒ๋œ ๋ฉ”์„œ๋“œ์˜ ๋Œ€ํ•ด ์†Œ๊ฐœํ•˜๊ฒ ๋‹ค. (์•„์ฃผ ๊ฐ„๋‹จํžˆ)

split

๊ฐ์ฒด๋ฅผ ์ง€์ •ํ•œ ๊ตฌ๋ถ„์ž(์ธ์ž๊ฐ’)๋ฅผ ์ด์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฌธ์ž์—ด๋กœ ๋‚˜๋ˆ•๋‹ˆ๋‹ค.

reverse

๋ฐฐ์—ด์˜ ์ˆœ์„œ๋ฅผ ๋ฐ˜์ „ํ•œ๋‹ค.

join

๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์—ฐ๊ฒฐํ•ด ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

unshift

์ƒˆ๋กœ์šด ์š”์†Œ๋ฅผ ๋ฐฐ์—ด์˜ ๋งจ ์•ž์ชฝ์— ์ถ”๊ฐ€ํ•˜๊ณ , ์ƒˆ๋กœ์šด ๊ธธ์ด๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

pop

๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๊ทธ ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

profile
๋ฌด๋Ÿญ๋ฌด๋Ÿญ ์ž๋ผ๋‚˜๋Š” ๋„๋„ ๊ฐœ๋ฐœ์„ฑ์žฅ์ผ๊ธฐ

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