๐Ÿ’ก๋ฌธ์ œ ๋ถ„์„ ์š”์•ฝ

๐Ÿ’ก์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๊ณ„

๐Ÿ’ก์ฝ”๋“œ


const fs = require('fs');
const path = require('path');

const input = fs.readFileSync(path.join(__dirname, 'input.txt')).toString().trim().split('\\n');
// ['I am happy today', 'We want to win the first prize']

// input์˜ ๊ฐ ์ค„์„ ํ•˜๋‚˜์”ฉ ์ฒ˜๋ฆฌํ•˜๋Š” ํ•จ์ˆ˜
const result = input.slice(1).map(line => { 
  // ์ฒซ ๋ฒˆ์งธ ์ค„์„ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ์ค„ ์ฒ˜๋ฆฌ
  // line์€ ํ˜„์žฌ ์ฒ˜๋ฆฌํ•˜๊ณ  ์žˆ๋Š” ์ค„
  
  const reversedWords = line.split(' ').map(word => word.split('').reverse().join(''));
  // 1. line.split(' ') - ํ•œ ์ค„์„ ๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋‹จ์–ด๋กœ ๋‚˜๋ˆˆ ๋ฐฐ์—ด ์ƒ์„ฑ (['I', 'am', 'happy', 'today'])
  // 2. map() - ๊ฐ ๋‹จ์–ด์— ์–ด๋–ค ์ž‘์—…์„ ํ•˜๊ณ  ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜
  // 3. word.split('') - ๊ฐ ๋‹จ์–ด๋ฅผ ๋ฌธ์ž ํ•˜๋‚˜์”ฉ ๋ถ„๋ฆฌ ("happy" โ†’ ['h', 'a', 'p', 'p', 'y'])
  // 4. reverse() - ๋ฐฐ์—ด์˜ ์ˆœ์„œ๋ฅผ ๋’ค์ง‘์Œ (['h', 'a', 'p', 'p', 'y'] โ†’ ['y', 'p', 'p', 'a', 'h'])
  // 5. join('') - ๋ฐฐ์—ด์„ ๋‹ค์‹œ ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด๋กœ ํ•ฉ์นจ (['y', 'p', 'p', 'a', 'h'] โ†’ "yppah")

  return reversedWords.join(' ');
  // ๊ฐ ์ค„์˜ ๊ฒฐ๊ณผ๋ฅผ ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜
});

console.log(result.join('\\n'));

๐Ÿ’ก์‹œ๊ฐ„ ๋ณต์žก๋„