# [Algorithm/JS] ๋ฐฑ์ค€ 2908๋ฒˆ ์ƒ์ˆ˜

๐Ÿ”— ๋ฌธ์ œ ๋ฐ”๋กœ๊ฐ€๊ธฐ (opens new window)

# Question

์ƒ๊ทผ์ด์˜ ๋™์ƒ ์ƒ์ˆ˜๋Š” ์ˆ˜ํ•™์„ ์ •๋ง ๋ชปํ•œ๋‹ค. ์ƒ์ˆ˜๋Š” ์ˆซ์ž๋ฅผ ์ฝ๋Š”๋ฐ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์ˆ˜ํ•™์„ ๋ชปํ•˜๋Š” ์ƒ์ˆ˜๋ฅผ ์œ„ํ•ด์„œ ์ƒ๊ทผ์ด๋Š” ์ˆ˜์˜ ํฌ๊ธฐ๋ฅผ ๋น„๊ตํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ๋‚ด์ฃผ์—ˆ๋‹ค. ์ƒ๊ทผ์ด๋Š” ์„ธ ์ž๋ฆฌ ์ˆ˜ ๋‘ ๊ฐœ๋ฅผ ์น ํŒ์— ์จ์ฃผ์—ˆ๋‹ค. ๊ทธ ๋‹ค์Œ์— ํฌ๊ธฐ๊ฐ€ ํฐ ์ˆ˜๋ฅผ ๋งํ•ด๋ณด๋ผ๊ณ  ํ–ˆ๋‹ค.

์ƒ์ˆ˜๋Š” ์ˆ˜๋ฅผ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๊ณผ ๋‹ค๋ฅด๊ฒŒ ๊ฑฐ๊พธ๋กœ ์ฝ๋Š”๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 734์™€ 893์„ ์น ํŒ์— ์ ์—ˆ๋‹ค๋ฉด, ์ƒ์ˆ˜๋Š” ์ด ์ˆ˜๋ฅผ 437๊ณผ 398๋กœ ์ฝ๋Š”๋‹ค. ๋”ฐ๋ผ์„œ, ์ƒ์ˆ˜๋Š” ๋‘ ์ˆ˜์ค‘ ํฐ ์ˆ˜์ธ 437์„ ํฐ ์ˆ˜๋ผ๊ณ  ๋งํ•  ๊ฒƒ์ด๋‹ค.

๋‘ ์ˆ˜๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ƒ์ˆ˜์˜ ๋Œ€๋‹ต์„ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

# Input

์ฒซ์งธ ์ค„์— ์ƒ๊ทผ์ด๊ฐ€ ์น ํŒ์— ์ ์€ ๋‘ ์ˆ˜ A์™€ B๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋‘ ์ˆ˜๋Š” ๊ฐ™์ง€ ์•Š์€ ์„ธ ์ž๋ฆฌ ์ˆ˜์ด๋ฉฐ, 0์ด ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค.

# Output

์ฒซ์งธ ์ค„์— ์ƒ์ˆ˜์˜ ๋Œ€๋‹ต์„ ์ถœ๋ ฅํ•œ๋‹ค.

# Example

# Input 1

734 893
1

# Output 1

437
1

# Input 2

221 231
1

# Output 2

132
1

์ด ์™ธ์˜ ์ž…์ถœ๋ ฅ์€ ์ƒ๋‹จ์˜ ๋ฌธ์ œ ๋ฐ”๋กœ๊ฐ€๊ธฐ ๋งํฌ์—์„œ ํ™•์ธ

# Solution

# ํ’€์ด 1

const input = require('fs').readFileSync('dev/stdin').toString().trim().split(' ');

const compare = []; // (1)

input.map((num) => {
  // (2)
  let reverse = ''; // (3)
  const nums = num.split(''); // (4)
  for (let i = nums.length - 1; i >= 0; i--) {
    reverse += nums[i];
  }
  compare.push(Number(reverse)); // (5)
});
console.log(Math.max(...compare)); // (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  1. compare ๋ณ€์ˆ˜๋Š” ๊ฑฐ๊พธ๋กœ ๋ณ€ํ™˜ํ•œ ๋‘ ์ˆ˜๋ฅผ ๋‹ด์„ Array ๋ณ€์ˆ˜์ด๋‹ค.
  2. input ๊ฐ’์„ ๋ฐฐ์—ด๋กœ ๋ฐ›์•„ map ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค.
  3. reverse ๋ณ€์ˆ˜๋Š” ์ˆซ์ž๋ฅผ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ด ๊ฑฐ๊พธ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋‹ด์„ ๋ณ€์ˆ˜์ด๋‹ค.
  4. nums ๋ณ€์ˆ˜์— ์ˆซ์ž๋ฅผ ํ•˜๋‚˜์”ฉ split์„ ์‚ฌ์šฉํ•ด ์ชผ๊ฐœ์–ด ํ• ๋‹นํ–ˆ๋‹ค.
  5. ๊ฑฐ๊พธ๋กœ ๋ณ€ํ™˜ํ•œ ์ˆ˜๋ฅผ compare ๋ฐฐ์—ด์— ์ถ”๊ฐ€ํ•œ๋‹ค.
  6. ์ตœ๋Œ“๊ฐ’์„ ๊ตฌํ•˜๋Š” Math.max ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ๊ฒฐ๊ณผ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.

์•„์ง ๋” ๊ฐ„๊ฒฐํ•œ ์ฝ”๋“œ๋ฅผ ์“ฐ๋Š” ๊ฒƒ์ด ๋ชธ์— ๋ฒ ์ง€ ์•Š์•„ ์•ฝ๊ฐ„์˜ ํ•˜๋“œ์ฝ”๋”ฉ ๋Š๋‚Œ์ด ์—†์ž–์•„ ์žˆ๋‹ค. ๋‹ค๋ฅธ ์ฝ”๋“œ๋ฅผ ๋น„๊ตํ•ด ์–ด๋–ป๊ฒŒ ๋ณด์™„ํ•˜๋ฉด ๋” ๊น”๋”ํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์„๊นŒ.

# ํ’€์ด 2

const input = require('fs').readFileSync('dev/stdin').toString().trim().split(' ');
const [a, b] = input.map((x) => [...x].reverse().join(''));
console.log(a > b ? a : b);
1
2
3

ํ›จ์”ฌ ๊ฐ„๊ฒฐํ•˜๊ณ  ๊ฐ€๋…์„ฑ์ด ์ข‹๋‹ค.

map ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋™์ผํ•˜๋‹ค. ์„ธ ์ž๋ฆฌ ์ˆซ์ž๋ฅผ ํ•˜๋‚˜์”ฉ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ๋ฐ˜๋ณต๋ฌธ์ด ์•„๋‹Œ spread ๋ฌธ๋ฒ•๊ณผ ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด์—ˆ๋‹ค.

๋ฐฐ์—ด ๋ฉ”์†Œ๋“œ reverse ๋กœ ๊ฐ„ํŽธํ•˜๊ฒŒ ์ˆœ์„œ๋ฅผ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์ƒˆ๋กญ๊ฒŒ ์•Œ์•˜๋‹ค. join ์œผ๋กœ ์„ธ ์ˆ˜๋ฅผ ํ•ฉ์ณ ํฐ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

Last Updated: 2022. 6. 5. ์˜คํ›„ 3:42:39