# [Algorithm/JS] ๋ฐฑ์ค€ 10610๋ฒˆ 30

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

# Question

์–ด๋Š ๋‚ , ๋ฏธ๋ฅด์ฝ”๋Š” ์šฐ์—ฐํžˆ ๊ธธ๊ฑฐ๋ฆฌ์—์„œ ์–‘์ˆ˜ N์„ ๋ณด์•˜๋‹ค. ๋ฏธ๋ฅด์ฝ”๋Š” 30์ด๋ž€ ์ˆ˜๋ฅผ ์กด๊ฒฝํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๊ทธ๋Š” ๊ธธ๊ฑฐ๋ฆฌ์—์„œ ์ฐพ์€ ์ˆ˜์— ํฌํ•จ๋œ ์ˆซ์ž๋“ค์„ ์„ž์–ด 30์˜ ๋ฐฐ์ˆ˜๊ฐ€ ๋˜๋Š” ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ์–ดํ•œ๋‹ค.

๋ฏธ๋ฅด์ฝ”๋ฅผ ๋„์™€ ๊ทธ๊ฐ€ ๋งŒ๋“ค๊ณ  ์‹ถ์–ดํ•˜๋Š” ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋ผ.

# Input

N์„ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค. N๋Š” ์ตœ๋Œ€ 105๊ฐœ์˜ ์ˆซ์ž๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉฐ, 0์œผ๋กœ ์‹œ์ž‘ํ•˜์ง€ ์•Š๋Š”๋‹ค.

# Output

๋ฏธ๋ฅด์ฝ”๊ฐ€ ๋งŒ๋“ค๊ณ  ์‹ถ์–ดํ•˜๋Š” ์ˆ˜๊ฐ€ ์กด์žฌํ•œ๋‹ค๋ฉด ๊ทธ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋ผ. ๊ทธ ์ˆ˜๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด, -1์„ ์ถœ๋ ฅํ•˜๋ผ.

# Example

# Input 1

30
1

# Output 1

30
1

# Input 3

102
1

# Output 2

210
1

# Input 3

2931
1

# Output 3

-1
1

# Solution

์•Œ๊ณ ๋ฆฌ์ฆ˜: ๊ทธ๋ฆฌ๋””

์•„๋ž˜ ๊ทœ์น™๋งŒ ์•Œ๋ฉด ํ’€๊ธฐ ์‰ฝ๋‹ค.

  • 30์˜ ๋ฐฐ์ˆ˜๋Š” 0์ด ํ•„์ˆ˜์ ์œผ๋กœ ๋“ค์–ด๊ฐ€์•ผํ•œ๋‹ค. ์ˆซ์ž์— 0์ด ๋“ค์–ด๊ฐ€์žˆ์ง€ ์•Š๋‹ค๋ฉด ๊ทธ ์ˆ˜๋Š” 30์˜ ๋ฐฐ์ˆ˜๊ฐ€ ์•„๋‹ˆ๋‹ค.
  • 30์˜ ๋ฐฐ์ˆ˜๋Š” ๊ฐ ์ž๋ฆฌ ์ˆ˜๋ฅผ ๋ชจ๋‘ ํ•ฉํ•œ ์ˆ˜๋ฅผ 3์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง„๋‹ค๋ฉด ๊ทธ ์ˆ˜๋Š” 30์˜ ๋ฐฐ์ˆ˜์ด๋‹ค. ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€์ง€ ์•Š๋Š”๋‹ค๋ฉด ๊ทธ ์ˆ˜๋Š” 30์˜ ๋ฐฐ์ˆ˜๊ฐ€ ์•„๋‹ˆ๋‹ค.
const fs = require('fs');
const filePath = process.platform === 'linux' ? '/dev/stdin' : '../input.txt';
const input = fs.readFileSync(filePath).toString().trim().split('');

solution(input);

function solution(input) {
  if (!input.includes('0')) {
    // 1
    console.log('-1');
  } else {
    const sum = input.map(Number).reduce((acc, cur) => acc + cur); // 2
    if (sum % 3 !== 0) return console.log('-1'); // 3
    const result = input.sort((a, b) => b - a).join('');
    console.log(result);
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
  1. ์ž…๋ ฅ ๊ฐ’์— 0์ด ํฌํ•จ๋˜์–ด์žˆ๋Š” ์ง€ ํ™•์ธํ•œ๋‹ค. ํฌํ•จ๋˜์–ด์žˆ์ง€ ์•Š๋‹ค๋ฉด -1 ์ถœ๋ ฅ
  2. map ์„ ํ†ตํ•ด ์ด ์ˆซ์žํ˜• ํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜ ํ›„ ๊ฐ ์ž๋ฆฌ ์ˆ˜์˜ ํ•ฉ์„ reduce ๋กœ ๊ตฌํ•œ๋‹ค.
  3. ๊ฐ ์ž๋ฆฌ์ˆ˜์˜ ํ•ฉ์„ 3์œผ๋กœ ๋‚˜๋ˆ„์—ˆ์„ ๋•Œ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€์ง€ ์•Š๋Š”๋‹ค๋ฉด -1์„ ์ถœ๋ ฅํ•˜๊ณ  ํ•จ์ˆ˜๋ฅผ ๋น ์ ธ๋‚˜๊ฐ„๋‹ค.
  4. ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง„๋‹ค๋ฉด 30์˜ ๋ฐฐ์ˆ˜์ด๋ฏ€๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ ํ›„ ํ•˜๋‚˜์˜ ํ•ฉ์ณ์ค€๋‹ค

[ โ€˜8โ€™, โ€˜8โ€™, โ€˜7โ€™, โ€˜5โ€™, โ€˜5โ€™, โ€˜4โ€™, โ€˜2โ€™, โ€™0โ€™ ] โ†’ 88755420

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