8 min read

Level 1 ์—ฐ์Šต๋ฌธ์ œ (3) - ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต

Table of Contents

Last Update: 2019-12-22

  1. Level 1 ์—ฐ์Šต๋ฌธ์ œ (1) ๋ฐ”๋กœ๊ฐ€๊ธฐ
  2. Level 1 ์—ฐ์Šต๋ฌธ์ œ (2) ๋ฐ”๋กœ๊ฐ€๊ธฐ
  3. Level 1 ์—ฐ์Šต๋ฌธ์ œ (3)

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ Level1 ๋ฌธ์ œ๋“ค์ค‘ ์—ฐ์Šต๋ฌธ์ œ๋ผ๋Š” ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋ฌธ์ œ๋“ค์€ ๋‹ค๋ฅธ ๋ฌธ์ œ๋“ค์— ๋น„ํ•ด ์‰ฌ์šด ํŽธ์ด๋‹ˆ ์—ฌ๋Ÿฌ ๊ธ€์„ ๋‚˜๋ˆ  ์“ฐ์ง€ ์•Š๊ณ  ์ด๋ฒˆ ๊ธ€์— ์ญ‰ ์ ์–ด ๋ณผ ์ƒ๊ฐ์ด๋‹ค. ๋ชป ํ‘ผ๊ฑด ๋ฌผ๋ก  ์•ˆ์ ์Œ.

์ œ์ผ ์ž‘์€ ์ˆ˜ ์ œ๊ฑฐํ•˜๊ธฐ

๋ฌธ์ œ ๋ณด๊ธฐ

์ •์ˆ˜๋ฅผ ์ €์žฅํ•œ ๋ฐฐ์—ด, arr ์—์„œ ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜๋ฅผ ์ œ๊ฑฐํ•œ ๋ฐฐ์—ด์„ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด์ฃผ์„ธ์š”. ๋‹จ, ๋ฆฌํ„ดํ•˜๋ ค๋Š” ๋ฐฐ์—ด์ด ๋นˆ ๋ฐฐ์—ด์ธ ๊ฒฝ์šฐ์—” ๋ฐฐ์—ด์— -1์„ ์ฑ„์›Œ ๋ฆฌํ„ดํ•˜์„ธ์š”. ์˜ˆ๋ฅผ๋“ค์–ด arr์ด [4,3,2,1]์ธ ๊ฒฝ์šฐ๋Š” [4,3,2]๋ฅผ ๋ฆฌํ„ด ํ•˜๊ณ , [10]๋ฉด [-1]์„ ๋ฆฌํ„ด ํ•ฉ๋‹ˆ๋‹ค.

์ œํ•œ ์กฐ๊ฑด

  • arr์€ ๊ธธ์ด 1 ์ด์ƒ์ธ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค.
  • ์ธ๋ฑ์Šค i, j์— ๋Œ€ํ•ด i โ‰  j์ด๋ฉด arr[i] โ‰  arr[j] ์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

arrreturn
[4,3,2,1][4,3,2]
[10[-1]

ํ’€์ด

function solution(arr) {
  if (arr.length <= 1) {
    return [-1];
  }

  var min = Math.min(...arr);
  var index = arr.indexOf(min);
  arr.splice(index, 1);

  return arr;
}

๋ฐฐ์—ด์—์„œ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ๊ตฌํ•œ๋’ค ๋ง๊ทธ๋Œ€๋กœ ์ œ๊ฑฐํ•ด์ฃผ๋ฉด ๋œ๋‹ค. ๋”ฑํžˆ ์–ด๋ ต์ง€ ์•Š๋‹ค.


์ง์ˆ˜์™€ ํ™€์ˆ˜

๋ฌธ์ œ ๋ณด๊ธฐ

์ •์ˆ˜ num์ด ์ง์ˆ˜์ผ ๊ฒฝ์šฐ โ€œEvenโ€์„ ๋ฐ˜ํ™˜ํ•˜๊ณ  ํ™€์ˆ˜์ธ ๊ฒฝ์šฐ โ€œOddโ€๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

์ œํ•œ ์กฐ๊ฑด

  • num์€ int ๋ฒ”์œ„์˜ ์ •์ˆ˜์ž…๋‹ˆ๋‹ค.
  • 0์€ ์ง์ˆ˜์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

numreturn
3โ€Oddโ€
4โ€Evenโ€

ํ’€์ด

function solution(num) {
  return num % 2 === 0 ? "Even" : "Odd";
}

์ฝœ๋ผ์ธ  ์ถ”์ธก

๋ฌธ์ œ ๋ณด๊ธฐ

1937๋…„ Collatz๋ž€ ์‚ฌ๋žŒ์— ์˜ํ•ด ์ œ๊ธฐ๋œ ์ด ์ถ”์ธก์€, ์ฃผ์–ด์ง„ ์ˆ˜๊ฐ€ 1์ด ๋ ๋•Œ๊นŒ์ง€ ๋‹ค์Œ ์ž‘์—…์„ ๋ฐ˜๋ณตํ•˜๋ฉด, ๋ชจ๋“  ์ˆ˜๋ฅผ 1๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๋Š” ์ถ”์ธก์ž…๋‹ˆ๋‹ค. ์ž‘์—…์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

1-1. ์ž…๋ ฅ๋œ ์ˆ˜๊ฐ€ ์ง์ˆ˜๋ผ๋ฉด 2๋กœ ๋‚˜๋ˆ•๋‹ˆ๋‹ค.
1-2. ์ž…๋ ฅ๋œ ์ˆ˜๊ฐ€ ํ™€์ˆ˜๋ผ๋ฉด 3์„ ๊ณฑํ•˜๊ณ  1์„ ๋”ํ•ฉ๋‹ˆ๋‹ค.
2. ๊ฒฐ๊ณผ๋กœ ๋‚˜์˜จ ์ˆ˜์— ๊ฐ™์€ ์ž‘์—…์„ 1์ด ๋  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์ž…๋ ฅ๋œ ์ˆ˜๊ฐ€ 6์ด๋ผ๋ฉด 6โ†’3โ†’10โ†’5โ†’16โ†’8โ†’4โ†’2โ†’1 ์ด ๋˜์–ด ์ด 8๋ฒˆ ๋งŒ์— 1์ด ๋ฉ๋‹ˆ๋‹ค. ์œ„ ์ž‘์—…์„ ๋ช‡ ๋ฒˆ์ด๋‚˜ ๋ฐ˜๋ณตํ•ด์•ผํ•˜๋Š”์ง€ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”. ๋‹จ, ์ž‘์—…์„ 500๋ฒˆ์„ ๋ฐ˜๋ณตํ•ด๋„ 1์ด ๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด โ€“1์„ ๋ฐ˜ํ™˜ํ•ด ์ฃผ์„ธ์š”.

์ œํ•œ ์กฐ๊ฑด

  • ์ž…๋ ฅ๋œ ์ˆ˜, num์€ 1 ์ด์ƒ 8000000 ๋ฏธ๋งŒ์ธ ์ •์ˆ˜์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

nresult
68
164
626331-1

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

  • ์ž…์ถœ๋ ฅ ์˜ˆ #1
    ๋ฌธ์ œ์˜ ์„ค๋ช…๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
  • ์ž…์ถœ๋ ฅ ์˜ˆ #2
    16 -> 8 -> 4 -> 2 -> 1 ์ด๋˜์–ด ์ด 4๋ฒˆ๋งŒ์— 1์ด ๋ฉ๋‹ˆ๋‹ค.
  • ์ž…์ถœ๋ ฅ ์˜ˆ #3
    626331์€ 500๋ฒˆ์„ ์‹œ๋„ํ•ด๋„ 1์ด ๋˜์ง€ ๋ชปํ•˜๋ฏ€๋กœ -1์„ ๋ฆฌํ„ดํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

ํ’€์ด

function solution(num) {
  let cnt = 0;

  while (true) {
    // ์ˆซ์ž๊ฐ€ 1์ด๋˜๋ฉด ์ข…๋ฃŒ
    if (num === 1) {
      return cnt;
    }
    // ์ž‘์—…์„ 500๋ฒˆ ์ด์ƒ ๋ฐ˜๋ณตํ–ˆ์œผ๋ฉด ์ข…๋ฃŒ
    if (cnt >= 500) {
      return -1;
    }

    if (num % 2 === 0) {
      num /= 2;
    } else {
      num = num * 3 + 1;
    }
    cnt++;
  }
}

1์ด ๋˜์—ˆ์„ ๋•Œ์™€, 500๋ฒˆ ์ด์ƒ ๋ฐ˜๋ณตํ–ˆ์„ ๊ฒฝ์šฐ๋งŒ ์˜ˆ์™ธ์ฒ˜๋ฆฌ ํ•ด์ฃผ๋ฉด ๊ฐ„๋‹จํ•˜๊ฒŒ ์ฃผ์–ด์ง„ ๋ฌธ์ œ๋Œ€๋กœ ์‹์„ ์“ฐ๊ณ  ํ•ด๊ฒฐ ๊ฐ€๋Šฅ.


ํ‰๊ท  ๊ตฌํ•˜๊ธฐ

๋ฌธ์ œ ๋ณด๊ธฐ

์ •์ˆ˜๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ๋ฐฐ์—ด arr์˜ ํ‰๊ท ๊ฐ’์„ returnํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด๋ณด์„ธ์š”.

์ œํ•œ ์กฐ๊ฑด

  • arr์€ ๊ธธ์ด 1 ์ด์ƒ, 100 ์ดํ•˜์ธ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค.
  • arr์˜ ์›์†Œ๋Š” -10,000 ์ด์ƒ 10,000 ์ดํ•˜์ธ ์ •์ˆ˜์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

arrreturn
[1,2,3,4]2.5
[5,5]5

ํ’€์ด

function solution(arr) {
  return (
    arr.reduce((acc, curr) => {
      return acc + curr;
    }) / arr.length
  );
}

๋ฐฐ์—ด ๊ฐ ์š”์†Œ์˜ ํ•ฉ / ๋ฐฐ์—ด์˜ ๊ธธ์ด. reduce ํ•จ์ˆ˜๋Š” ์ •๋ง ์œ ์šฉํ•˜๋‹ˆ ์ž˜ ์•Œ์•„๋‘๋„๋ก ํ•˜์ž.


ํ•˜์ƒค๋“œ ์ˆ˜

๋ฌธ์ œ ๋ณด๊ธฐ

์–‘์˜ ์ •์ˆ˜ x๊ฐ€ ํ•˜์ƒค๋“œ ์ˆ˜์ด๋ ค๋ฉด x์˜ ์ž๋ฆฟ์ˆ˜์˜ ํ•ฉ์œผ๋กœ x๊ฐ€ ๋‚˜๋ˆ„์–ด์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 18์˜ ์ž๋ฆฟ์ˆ˜ ํ•ฉ์€ 1+8=9์ด๊ณ , 18์€ 9๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋ฏ€๋กœ 18์€ ํ•˜์ƒค๋“œ ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ž์—ฐ์ˆ˜ x๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ x๊ฐ€ ํ•˜์ƒค๋“œ ์ˆ˜์ธ์ง€ ์•„๋‹Œ์ง€ ๊ฒ€์‚ฌํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

์ œํ•œ ์กฐ๊ฑด

  • x๋Š” 1 ์ด์ƒ, 10000 ์ดํ•˜์ธ ์ •์ˆ˜์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

arrreturn
10true
12true
11false
13false

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

  • ์ž…์ถœ๋ ฅ ์˜ˆ #1
    10์˜ ๋ชจ๋“  ์ž๋ฆฟ์ˆ˜์˜ ํ•ฉ์€ 1์ž…๋‹ˆ๋‹ค. 10์€ 1๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋ฏ€๋กœ 10์€ ํ•˜์ƒค๋“œ ์ˆ˜์ž…๋‹ˆ๋‹ค.
  • ์ž…์ถœ๋ ฅ ์˜ˆ #2
    12์˜ ๋ชจ๋“  ์ž๋ฆฟ์ˆ˜์˜ ํ•ฉ์€ 3์ž…๋‹ˆ๋‹ค. 12๋Š” 3์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋ฏ€๋กœ 12๋Š” ํ•˜์ƒค๋“œ ์ˆ˜์ž…๋‹ˆ๋‹ค.
  • ์ž…์ถœ๋ ฅ ์˜ˆ #3
    11์˜ ๋ชจ๋“  ์ž๋ฆฟ์ˆ˜์˜ ํ•ฉ์€ 2์ž…๋‹ˆ๋‹ค. 11์€ 2๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€์ง€ ์•Š์œผ๋ฏ€๋กœ 11๋Š” ํ•˜์ƒค๋“œ ์ˆ˜๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.
  • ์ž…์ถœ๋ ฅ ์˜ˆ #4
    13์˜ ๋ชจ๋“  ์ž๋ฆฟ์ˆ˜์˜ ํ•ฉ์€ 4์ž…๋‹ˆ๋‹ค. 13์€ 4๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€์ง€ ์•Š์œผ๋ฏ€๋กœ 13์€ ํ•˜์ƒค๋“œ ์ˆ˜๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

ํ’€์ด

function solution(x) {
  var sum = 0;
  var num = x;
  while (num > 0) {
    sum += num % 10;
    num = parseInt(num / 10);
  }

  return x % sum === 0;
}

๊ฒฐ๋ก ์ ์œผ๋กœ๋Š” x๋ฅผ ๊ฐ ์ž๋ฆฟ์ˆ˜์˜ ํ•ฉ์œผ๋กœ ๋‚˜๋ˆˆ ๊ฐ’์ด 0์ธ์ง€๋งŒ ๊ตฌํ•˜๋ฉด ๋œ๋‹ค. ๊ฐ ์ž๋ฆฟ์ˆ˜์˜ ํ•ฉ์„ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€ Level 1 ์—ฐ์Šต๋ฌธ์ œ (2) - ์ž๋ฆฟ์ˆ˜ ๋”ํ•˜๊ธฐ๋ฅผ ์ฐธ๊ณ ํ•˜๋ฉด ๋œ๋‹ค.


ํ•ธ๋“œํฐ ๋ฒˆํ˜ธ ๊ฐ€๋ฆฌ๊ธฐ

๋ฌธ์ œ ๋ณด๊ธฐ

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ชจ๋ฐ”์ผ์€ ๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ๋ฅผ ์œ„ํ•ด ๊ณ ์ง€์„œ๋ฅผ ๋ณด๋‚ผ ๋•Œ ๊ณ ๊ฐ๋“ค์˜ ์ „ํ™”๋ฒˆํ˜ธ์˜ ์ผ๋ถ€๋ฅผ ๊ฐ€๋ฆฝ๋‹ˆ๋‹ค.
์ „ํ™”๋ฒˆํ˜ธ๊ฐ€ ๋ฌธ์ž์—ด phone_number๋กœ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ „ํ™”๋ฒˆํ˜ธ์˜ ๋’ท 4์ž๋ฆฌ๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ์ˆซ์ž๋ฅผ ์ „๋ถ€ *์œผ๋กœ ๊ฐ€๋ฆฐ ๋ฌธ์ž์—ด์„ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

์ œํ•œ ์กฐ๊ฑด

  • s๋Š” ๊ธธ์ด 4 ์ด์ƒ, 20์ดํ•˜์ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

phone_numberreturn
01033334444*******4444
027778888*****8888

ํ’€์ด

function solution(phone_number) {
  return "*".repeat(phone_number.length - 4) + phone_number.slice(-4);
}

๊ธฐ๋ณธ์— ์ถฉ์‹คํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•จ.


ํ–‰๋ ฌ์˜ ๋ง์…ˆ

๋ฌธ์ œ ๋ณด๊ธฐ

ํ–‰๋ ฌ์˜ ๋ง์…ˆ์€ ํ–‰๊ณผ ์—ด์˜ ํฌ๊ธฐ๊ฐ€ ๊ฐ™์€ ๋‘ ํ–‰๋ ฌ์˜ ๊ฐ™์€ ํ–‰, ๊ฐ™์€ ์—ด์˜ ๊ฐ’์„ ์„œ๋กœ ๋”ํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. 2๊ฐœ์˜ ํ–‰๋ ฌ arr1๊ณผ arr2๋ฅผ ์ž…๋ ฅ๋ฐ›์•„, ํ–‰๋ ฌ ๋ง์…ˆ์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

์ œํ•œ ์กฐ๊ฑด

  • ํ–‰๋ ฌ arr1, arr2์˜ ํ–‰๊ณผ ์—ด์˜ ๊ธธ์ด๋Š” 500์„ ๋„˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

arr1arr2return
[[1,2],[2,3]][[3,4],[5,6]][[4,6],[7,9]]
[[1],[2]][[3],[4]][[4],[6]]

ํ’€์ด

function solution(arr1, arr2) {
  return arr1.map((arr, i) => {
    return arr.map((value, j) => {
      return value + arr2[i][j];
    });
  });
}

ํ–‰๋ ฌ๋ฌธ์ œ๋Š” ์˜ค๋ธŒ์ ํŠธ๋‚˜ ์ด์ค‘ ๋ฐฐ์—ด์„ ๋‹ค๋ฃจ๋Š” ๋ฌธ์ œ๋กœ ์ž์ฃผ ์ถœ์ œ๋˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋ฌธ์ œ์ด๊ธฐ๋„ ํ•œ ๋“ฏ?


x๋งŒํผ ๊ฐ„๊ฒฉ์ด ์žˆ๋Š” n๊ฐœ์˜ ์ˆซ์ž

๋ฌธ์ œ ๋ณด๊ธฐ

ํ•จ์ˆ˜ solution์€ ์ •์ˆ˜ x์™€ ์ž์—ฐ์ˆ˜ n์„ ์ž…๋ ฅ ๋ฐ›์•„, x๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด x์”ฉ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆซ์ž๋ฅผ n๊ฐœ ์ง€๋‹ˆ๋Š” ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฆฌํ„ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์ œํ•œ ์กฐ๊ฑด์„ ๋ณด๊ณ , ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

์ œํ•œ ์กฐ๊ฑด

  • x๋Š” -10000000 ์ด์ƒ, 10000000 ์ดํ•˜์ธ ์ •์ˆ˜์ž…๋‹ˆ๋‹ค.
  • n์€ 1000 ์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

xnanswer
25[2,4,6,8,10]
43[4,8,12]
-42[-4, -8]

ํ’€์ด

function solution(x, n) {
  var answer = [];
  for (let i = 0; i < n; i++) {
    answer.push((i + 1) * x);
  }
  return answer;
}

x์˜ ๋ฐฐ์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง„ ๊ธธ์ด n๋งŒํผ์˜ ๋ฐฐ์—ด์„ ๋งŒ๋“ค๋ฉด ๋œ๋‹ค.


์ตœ๋Œ€๊ณต์•ฝ์ˆ˜์™€ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜

๋ฌธ์ œ ๋ณด๊ธฐ

๋‘ ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ๋‘ ์ˆ˜์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜์™€ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด ๋ณด์„ธ์š”. ๋ฐฐ์—ด์˜ ๋งจ ์•ž์— ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜, ๊ทธ๋‹ค์Œ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜๋ฅผ ๋„ฃ์–ด ๋ฐ˜ํ™˜ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‘ ์ˆ˜ 3, 12์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋Š” 3, ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜๋Š” 12์ด๋ฏ€๋กœ solution(3, 12)๋Š” [3, 12]๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ œํ•œ ์กฐ๊ฑด

  • ๋‘ ์ˆ˜๋Š” 1์ด์ƒ 1000000์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

nmreturn
312[3, 12]
25[1, 10]

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

  • ์ž…์ถœ๋ ฅ ์˜ˆ #1
    ์œ„์˜ ์„ค๋ช…๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
  • ์ž…์ถœ๋ ฅ ์˜ˆ #2
    ์ž์—ฐ์ˆ˜ 2์™€ 5์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋Š” 1, ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜๋Š” 10์ด๋ฏ€๋กœ [1, 10]์„ ๋ฆฌํ„ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ’€์ด

function solution(n, m) {
  var answer = [];

  answer[0] = gcd(n, m);
  answer[1] = (n * m) / answer[0];

  return answer;
}

function gcd(a, b) {
  if (a < b) {
    [a, b] = [b, a];
  }

  if (a % b === 0) {
    return b;
  }
  return gcd(b, a % b);
}

์ตœ๋Œ€๊ณต์•ฝ์ˆ˜์™€ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜๋ฅผ ์ด์šฉํ•œ ๋ฌธ์ œํ’€์ด๋Š” ์ƒ๋‹นํžˆ ์ž์ฃผ ์ถœ์ œ๋œ๋‹ค๊ณ  ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ํ’€์ด๋Š” ์ž์ฃผ ์ ‘ํ•˜๊ฒŒ ๋ ํ…Œ๋‹ˆ ๊ผญ ์•Œ์•„๋‘ฌ์•ผ๊ฒ ๋‹ค. ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ•์ด๋ผ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์žˆ๋Š”๋ฐ ์ด ๋ฐฉ๋ฒ•์„ ์ด์šฉํ•ด ํ’€์–ด ๋ณด์•˜๋‹ค.

  • ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜
    • ํฐ ์ˆ˜(n)๋ฅผ ์ž‘์€ ์ˆ˜(m)๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€ ๊ฐ’์ด 0์ด ๋˜์•ผ ํ•จ
    • ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€ ๊ฐ’์ด 0์ด๋ผ๋ฉด m์ด ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜
    • 0์ด ์•„๋‹ˆ๋ผ๋ฉด, ํฐ์ˆ˜๋Š” m, ์ž‘์€์ˆ˜๋Š” n % m์œผ๋กœ ๋ฐ˜๋ณต.
  • ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜
    • ๋‘ ์ˆ˜์˜ ๊ณฑ / ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜

level1์˜ ์—ฐ์Šต๋ฌธ์ œ๋“ค์„ ํ’€์–ด๋ณด์•˜๋‹ค. ๋ชป ํ‘ผ๊ฒƒ๋„ ์žˆ๊ณ  ์‰ฝ๊ฒŒ ํ‘ผ ๊ฒƒ๋„ ์žˆ๊ณ  ์ฐพ์•„๋ณธ ๊ฒƒ๋„ ์žˆ๊ณ  ๋‹ค์–‘ํ•˜์ž๋ฏผ, ์‹ค์ œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋ฅผ ๋น—๋Œ€์–ด๋ณด๋ฉด ์ด ์ •๋„ ์ˆ˜์ค€์€ ์•„์ฃผ ๊ธฐ์ดˆ ๋‹จ๊ณ„์˜ ๋ฌธ์ œ๋“ค์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋Ÿฐ ๋ฌธ์ œ๋“ค๋„ ์ž˜ ๋ชปํ‘ธ๋Š” ๊ฑธ ๋А๊ผˆ๋‹ค. ๋ฒผ๋ฝ์น˜๊ธฐ๊ฐ€ ์•„๋‹ˆ๋ผ ๊พธ์ค€ํžˆ ๊ณ„์† ๊ด€์‹ฌ์„ ๊ฐ€์ง€๊ณ  ํ‰์†Œ์—๋„ ๊ณต๋ถ€ํ•˜๋Š” ์Šต๊ด€์„ ๋“ค์—ฌ์•ผ๊ฒ ๋‹ค.