๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
TIL

TIL :: code-kata-js / (2)

by sophie0527 2022. 5. 25.

๋ฌธ์ œ

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

x: ์ˆซ์ž return: ๋’ค์ง‘์–ด์ง„ ์ˆซ์ž๋ฅผ ๋ฐ˜ํ™˜!
์˜ˆ๋“ค ๋“ค์–ด, x: 1234 return: 4321
x: -1234 return: -4321
x: 1230 return: 321




ํ’€์ด

  • ์ˆซ์ž๋ฅผ ๋ฌธ์ž๋กœ ๋ณ€๊ฒฝ - .toString (์ˆซ์ž๋Š” ๊ฑฐ๊พธ๋กœ๊ฐ€ ์•ˆ๋จ)
  • ๋ฌธ์ž์˜ ์š”์†Œ๋ฅผ ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค๊ธฐ - .split("")
  • ๋ฐฐ์—ด ๊ฑฐ๊พธ๋กœํ•˜๊ธฐ๊ธฐ - .reverse()
  • -๊ฐ€ ๋งจ๋’ค๋กœ๊ฐ€๋‹ˆ๊น -๋นผ๋‚ด์„œ -๋ฅผ ์•ž์œผ๋กœ ๋ณด๋‚ด๊ธฐ
  • ์ฒ˜์Œ ์ž๋ฆฌ์— 0์ด ์˜ค๋ฉด ์ฒ˜์Œ ์ž๋ฆฌ ์—†์• ๊ธฐ
  • ๋ถ„๋ฆฌ ๋˜์–ด์žˆ๋˜ ๋ฐฐ์—ด์„ ์กฐ์ธํ•ด์ฃผ๊ณ , ์ˆซ์ž๋กœ ๋ณ€ํ™˜

์ž‘์„ฑํ•œ ์ฝ”๋“œ

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

replit test์—์„œ๋Š” ํ†ต๊ณผ ํ–ˆ์ง€๋งŒ,
๋ฌธ์ œ์—์„œ x: 1230 return: 321 ์ด ์˜ˆ์‹œ์— ๋ฌธ์ œ๊ฐ€ ์ข€ ์žˆ์—ˆ๋‹ค.
๋งŒ์•ฝ x: 12300100 ์ด๋ผ๋ฉด??
[ 0, 0, 1, 0, 0, 3, 2, 1 ]
์•ž์— 0์ด 2๊ฐœ ์˜ฌ ์ˆ˜๋„ ์žˆ๋‹ค๋Š”๊ฒƒ์„ ๊ฐ„๊ณผํ–ˆ๋‹ค.
๊ทธ๋ž˜์„œ ์•„๋ž˜์˜ ์ฝ”๋“œ๋กœ ์ง€ํ˜„๋‹˜์ด ์ˆ˜์ •ํ•ด์ฃผ์…จ๋‹ค๐Ÿคฉ

์ฝ”๋“œ(๋ฐฉ๋ฒ•1)

const reverse = x => {
  // ์—ฌ๊ธฐ์— ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.
  let string = x.toString().split("").reverse();
  
  if (string.includes("-")){
    string.pop();
    string.unshift("-");
  }
  if (string[0] == 0){ 
    string.some(()=>{
    for(i = 0 ; i < string.length-1 ; i++) {
        string.shift();
  }
  }}
  }
  return Number(string.join(""));
}

์œ„์˜ ์ฝ”๋“œ์—์„œ ๋ถ€์กฑํ–ˆ๋˜ ๋ถ€๋ถ„์ธ 0์ด ์—ฌ๋Ÿฌ๊ฐœ ์•ž์œผ๋กœ ์˜ฌ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์„ ๋ณด์•ˆํ•œ ์ฝ”๋“œ์ด๋‹ค.
for๋ฌธ ์ด์šฉํ•˜์—ฌ, ๋ฌธ์ž์˜ ์ธ๋ฑ์Šค์— 0๋ฒˆ๋ถ€ํ„ฐ ๋Œ€์ž…ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ํ•˜์—ฌ ์•ž์— 0์ด ์—†์–ด์ง€๋„๋ก ํ•˜์˜€๋‹ค.

'TIL' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

TIL :: [React ] ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ ํ™œ์„ฑํ™”  (0) 2022.05.26
TIL :: [React] React Router, Sass  (0) 2022.05.25
TIL :: code-kata-js / (1)  (0) 2022.05.24
TIL :: JavaScript / replit. 25~30  (0) 2022.05.18
TIL :: DOM + Event  (0) 2022.05.17