8 min read

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

Table of Contents

Last Update: 2019-12-22

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

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

์ˆ˜๋ฐ•์ˆ˜๋ฐ•์ˆ˜๋ฐ•์ˆ˜๋ฐ•์ˆ˜๋ฐ•์ˆ˜?

๋ฌธ์ œ ๋ณด๊ธฐ

๊ธธ์ด๊ฐ€ n์ด๊ณ , ์ˆ˜๋ฐ•์ˆ˜๋ฐ•์ˆ˜๋ฐ•์ˆ˜โ€ฆ์™€ ๊ฐ™์€ ํŒจํ„ด์„ ์œ ์ง€ํ•˜๋Š” ๋ฌธ์ž์—ด์„ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•˜์„ธ์š”.
์˜ˆ๋ฅผ๋“ค์–ด n์ด 4์ด๋ฉด ์ˆ˜๋ฐ•์ˆ˜๋ฐ•์„ ๋ฆฌํ„ดํ•˜๊ณ  3์ด๋ผ๋ฉด ์ˆ˜๋ฐ•์ˆ˜๋ฅผ ๋ฆฌํ„ดํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์ œํ•œ ์กฐ๊ฑด

  • n์€ ๊ธธ์ด 10,000์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

nreturn
3์ˆ˜๋ฐ•์ˆ˜
4์ˆ˜๋ฐ•์ˆ˜๋ฐ•

ํ’€์ด

function solution(n) {
  var answer = "์ˆ˜๋ฐ•".repeat(n);
  answer = answer.substr(0, answer.length / 2);
  return answer;
}

๋ฌธ์ž์—ด์„ ์ •์ˆ˜๋กœ ๋ฐ”๊พธ๊ธฐ

๋ฌธ์ œ ๋ณด๊ธฐ

๋ฌธ์ž์—ด s๋ฅผ ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•˜์„ธ์š”.

์ œํ•œ ์กฐ๊ฑด

  • s์˜ ๊ธธ์ด๋Š” 1 ์ด์ƒ 5์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • s์˜ ๋งจ์•ž์—๋Š” ๋ถ€ํ˜ธ(+, -)๊ฐ€ ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • s๋Š” ๋ถ€ํ˜ธ์™€ ์ˆซ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ์žˆ์Šต๋‹ˆ๋‹ค.
  • s๋Š” 0์œผ๋กœ ์‹œ์ž‘ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

์˜ˆ๋ฅผ๋“ค์–ด str์ด 1234์ด๋ฉด 1234๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ , -1234์ด๋ฉด -1234๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. str์€ ๋ถ€ํ˜ธ(+,-)์™€ ์ˆซ์ž๋กœ๋งŒ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๊ณ , ์ž˜๋ชป๋œ ๊ฐ’์ด ์ž…๋ ฅ๋˜๋Š” ๊ฒฝ์šฐ๋Š” ์—†์Šต๋‹ˆ๋‹ค.

ํ’€์ด

function solution(s) {
  // return +s;
  // return s / 1;
  // return s * 1;
  return parseInt(s);
}

์ฃผ์„์นœ ์—ฐ์‚ฐ๋ฅผ ํ†ตํ•ด ์ •์ˆ˜ํ˜•์„ ๋ฐ”๊ฟ€ ์ˆ˜๋„ ์žˆ๊ฒ ์ง€๋งŒ, parseInt๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ๋ช…ํ™•ํ•œ ๊ฒƒ ๊ฐ™์•„์„œ parseInt๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.


์‹œ์ € ์•”ํ˜ธ

๋ฌธ์ œ ๋ณด๊ธฐ

์–ด๋–ค ๋ฌธ์žฅ์˜ ๊ฐ ์•ŒํŒŒ๋ฒณ์„ ์ผ์ •ํ•œ ๊ฑฐ๋ฆฌ๋งŒํผ ๋ฐ€์–ด์„œ ๋‹ค๋ฅธ ์•ŒํŒŒ๋ฒณ์œผ๋กœ ๋ฐ”๊พธ๋Š” ์•”ํ˜ธํ™” ๋ฐฉ์‹์„ ์‹œ์ € ์•”ํ˜ธ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด AB๋Š” 1๋งŒํผ ๋ฐ€๋ฉด BC๊ฐ€ ๋˜๊ณ , 3๋งŒํผ ๋ฐ€๋ฉด DE๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. z๋Š” 1๋งŒํผ ๋ฐ€๋ฉด a๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด s์™€ ๊ฑฐ๋ฆฌ n์„ ์ž…๋ ฅ๋ฐ›์•„ s๋ฅผ n๋งŒํผ ๋ฏผ ์•”ํ˜ธ๋ฌธ์„ ๋งŒ๋“œ๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด ๋ณด์„ธ์š”.

์ œํ•œ ์กฐ๊ฑด

  • ๊ณต๋ฐฑ์€ ์•„๋ฌด๋ฆฌ ๋ฐ€์–ด๋„ ๊ณต๋ฐฑ์ž…๋‹ˆ๋‹ค.
  • s๋Š” ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž, ๋Œ€๋ฌธ์ž, ๊ณต๋ฐฑ์œผ๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
  • s์˜ ๊ธธ์ด๋Š” 8000์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • n์€ 1 ์ด์ƒ, 25์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

snresult
โ€ABโ€1โ€BC"
"zโ€1โ€a"
"a B zโ€4โ€e F dโ€

ํ’€์ด

function solution(s, n) {
  var answer = s
    .split("")
    .map((item) => {
      if (item === " ") {
        return item;
      }

      var charCode = item.charCodeAt();
      var result = charCode + n;

      if ((charCode <= 90 && result > 90) || (charCode >= 97 && result > 122)) {
        result -= 26;
      }

      return String.fromCharCode(result);
    })
    .join("");

  return answer;
}

charCode๋ฅผ n๋งŒํผ ์ฆ๊ฐ€์‹œํ‚ค๋ฉด ๋œ๋‹ค. ๋‹ค๋งŒ z๋Š” a๋กœ Z๋Š” A๋กœ ๋Œ์•„๊ฐ€์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— if๋ฌธ์„ ์ด์šฉํ•ด ๋ณ€ํ•  charCode์™€ ๊ฒฐ๊ณผ๊ฐ’์„ ๋น„๊ตํ•ด ์•ŒํŒŒ๋ฑƒ ๊ฐœ์ˆ˜์ธ 26๋งŒํผ ๋นผ์ฃผ๋Š” ๋กœ์ง์„ ์ถ”๊ฐ€ํ•ด ์ฃผ์—ˆ๋‹ค. charCode๋ฅผ ๋‹ค์‹œ ๋ฌธ์ž๋กœ ์น˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜๋Š” String์˜ ๋ฉ”์†Œ๋“œ์ธ fromCharCode์ด๋‹ค. ์™ธ์›Œ๋‘๋„๋ก ํ•ด์•ผ๊ฒ ๋‹ค.


์•ฝ์ˆ˜์˜ ํ•ฉ

๋ฌธ์ œ ๋ณด๊ธฐ

์ •์ˆ˜ n์„ ์ž…๋ ฅ๋ฐ›์•„ n์˜ ์•ฝ์ˆ˜๋ฅผ ๋ชจ๋‘ ๋”ํ•œ ๊ฐ’์„ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

์ œํ•œ ์กฐ๊ฑด

  • n์€ 0 ์ด์ƒ 3000์ดํ•˜์ธ ์ •์ˆ˜์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

nreturn
1228
56

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

  • ์ž…์ถœ๋ ฅ ์˜ˆ #1
    12์˜ ์•ฝ์ˆ˜๋Š” 1, 2, 3, 4, 6, 12์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ๋ชจ๋‘ ๋”ํ•˜๋ฉด 28์ž…๋‹ˆ๋‹ค.
  • ์ž…์ถœ๋ ฅ ์˜ˆ #2
    5์˜ ์•ฝ์ˆ˜๋Š” 1, 5์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ๋ชจ๋‘ ๋”ํ•˜๋ฉด 6์ž…๋‹ˆ๋‹ค.

ํ’€์ด

function solution(n) {
  var answer = 0;
  for (var i = 1; i <= n; i++) {
    if (n % i === 0) {
      answer += i;
    }
  }
  return answer;
}

n์„ 1๋ถ€ํ„ฐ ๋‚˜๋ˆ„์–ด ๋‚˜๋จธ์ง€๊ฐ€ 0์ธ ์ˆ˜ = ์•ฝ์ˆ˜๋ฅผ ์ฐพ์•„ ๋”ํ•ด์ค€๋‹ค.


์ด์ƒํ•œ ๋ฌธ์ž ๋งŒ๋“ค๊ธฐ

๋ฌธ์ œ ๋ณด๊ธฐ

๋ฌธ์ž์—ด s๋Š” ํ•œ ๊ฐœ ์ด์ƒ์˜ ๋‹จ์–ด๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋‹จ์–ด๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ๊ณต๋ฐฑ๋ฌธ์ž๋กœ ๊ตฌ๋ถ„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋‹จ์–ด์˜ ์ง์ˆ˜๋ฒˆ์งธ ์•ŒํŒŒ๋ฒณ์€ ๋Œ€๋ฌธ์ž๋กœ, ํ™€์ˆ˜๋ฒˆ์งธ ์•ŒํŒŒ๋ฒณ์€ ์†Œ๋ฌธ์ž๋กœ ๋ฐ”๊พผ ๋ฌธ์ž์—ด์„ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•˜์„ธ์š”.

์ œํ•œ ์กฐ๊ฑด

  • ๋ฌธ์ž์—ด ์ „์ฒด์˜ ์ง/ํ™€์ˆ˜ ์ธ๋ฑ์Šค๊ฐ€ ์•„๋‹ˆ๋ผ, ๋‹จ์–ด(๊ณต๋ฐฑ์„ ๊ธฐ์ค€)๋ณ„๋กœ ์ง/ํ™€์ˆ˜ ์ธ๋ฑ์Šค๋ฅผ ํŒ๋‹จํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
  • ์ฒซ ๋ฒˆ์งธ ๊ธ€์ž๋Š” 0๋ฒˆ์งธ ์ธ๋ฑ์Šค๋กœ ๋ณด์•„ ์ง์ˆ˜๋ฒˆ์งธ ์•ŒํŒŒ๋ฒณ์œผ๋กœ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

sreturn
โ€try hello world""TrY HeLlO WoRlDโ€

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

โ€œtry hello worldโ€๋Š” ์„ธ ๋‹จ์–ด โ€œtryโ€, โ€œhelloโ€, โ€œworldโ€๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋‹จ์–ด์˜ ์ง์ˆ˜๋ฒˆ์งธ ๋ฌธ์ž๋ฅผ ๋Œ€๋ฌธ์ž๋กœ, ํ™€์ˆ˜๋ฒˆ์งธ ๋ฌธ์ž๋ฅผ ์†Œ๋ฌธ์ž๋กœ ๋ฐ”๊พธ๋ฉด โ€œTrYโ€, โ€œHeLlOโ€, โ€œWoRlDโ€์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ โ€œTrY HeLlO WoRlDโ€ ๋ฅผ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค.

ํ’€์ด

function solution(s) {
  return s
    .split(" ")
    .map((word) => {
      return word
        .split("")
        .map((char, index) => {
          return index % 2 === 0 ? char.toUpperCase() : char.toLowerCase();
        })
        .join("");
    })
    .join(" ");
}

์ž๋ฆฟ์ˆ˜ ๋”ํ•˜๊ธฐ

๋ฌธ์ œ ๋ณด๊ธฐ

์ž์—ฐ์ˆ˜ N์ด ์ฃผ์–ด์ง€๋ฉด, N์˜ ๊ฐ ์ž๋ฆฟ์ˆ˜์˜ ํ•ฉ์„ ๊ตฌํ•ด์„œ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ์ฃผ์„ธ์š”.
์˜ˆ๋ฅผ๋“ค์–ด N = 123์ด๋ฉด 1 + 2 + 3 = 6์„ return ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์ œํ•œ ์กฐ๊ฑด

  • N์˜ ๋ฒ”์œ„ : 100,000,000 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜

์ž…์ถœ๋ ฅ ์˜ˆ

Nanswer
1236
98724

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

  • ์ž…์ถœ๋ ฅ ์˜ˆ #1
    ๋ฌธ์ œ์˜ ์˜ˆ์‹œ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.
  • ์ž…์ถœ๋ ฅ ์˜ˆ #2
    9 + 8 + 7 = 24์ด๋ฏ€๋กœ 24๋ฅผ return ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

ํ’€์ด

function solution(n) {
  return ("" + n).split("").reduce((acc, curr) => {
    return acc + parseInt(curr);
  }, 0);
}

์ฒ˜์Œ์—” ์œ„์ฒ˜๋Ÿผ ๋ฌธ์ž๋กœ ์น˜ํ™˜ํ•ด์„œ ํ•œ ๊ธ€์ž์”ฉ ๋”ํ•ด์ฃผ๋Š” ํ’€์ด๋ฅผ ํ–ˆ๋Š”๋ฐ ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•๋„ ์žˆ๋‹ค๊ณ  ํ•ด์„œ ์ ์–ด๋‘”๋‹ค. ๋ฌด์กฐ๊ฑด ๋ฌธ์ž๋กœ ์ชผ๊ฐœ์„œ ํ‘ธ๋Š” ๊ฒƒ๋ณด๋‹จ ์ˆ˜ํ•™์ ์ธ ์ ‘๊ทผ์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ•ญ์ƒ ์ƒ๊ฐํ•ด์•ผ๊ฒ ๋‹ค.

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

์ž์—ฐ์ˆ˜ ๋’ค์ง‘์–ด ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค๊ธฐ

๋ฌธ์ œ ๋ณด๊ธฐ

์ž์—ฐ์ˆ˜ n์„ ๋’ค์ง‘์–ด ๊ฐ ์ž๋ฆฌ ์ˆซ์ž๋ฅผ ์›์†Œ๋กœ ๊ฐ€์ง€๋Š” ๋ฐฐ์—ด ํ˜•ํƒœ๋กœ ๋ฆฌํ„ดํ•ด์ฃผ์„ธ์š”. ์˜ˆ๋ฅผ๋“ค์–ด n์ด 12345์ด๋ฉด [5,4,3,2,1]์„ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค.

์ œํ•œ ์กฐ๊ฑด

  • n์€ 10,000,000,000์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

nreturn
12345[5,4,3,2,1]

ํ’€์ด

function solution(n) {
  return ("" + n)
    .split("")
    .reverse()
    .map((item) => +item);
}

์„ค๋ช…์ด ๋”ฑํžˆ ํ•„์š”์—†์„๋งŒํผ ๊ฐ„๋‹จํ•œ๋‹ค. ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค๋ฉด, ๋ฐ”๋กœ ์ „ โ€œ์ž๋ฆฟ์ˆ˜ ๋”ํ•˜๊ธฐโ€๋ฌธ์ œ์—์„œ ์ฒ˜๋Ÿผ 1์˜ ์ž๋ฆฌ์ˆ˜๋ฅผ ๊ตฌํ•ด ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์— pushํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ• ๋˜ํ•œ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค.


์ •์ˆ˜ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ๋ฐฐ์น˜ํ•˜๊ธฐ

๋ฌธ์ œ ๋ณด๊ธฐ

ํ•จ์ˆ˜ solution์€ ์ •์ˆ˜ n์„ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ž…๋ ฅ๋ฐ›์Šต๋‹ˆ๋‹ค. n์˜ ๊ฐ ์ž๋ฆฟ์ˆ˜๋ฅผ ํฐ๊ฒƒ๋ถ€ํ„ฐ ์ž‘์€ ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ ์ƒˆ๋กœ์šด ์ •์ˆ˜๋ฅผ ๋ฆฌํ„ดํ•ด์ฃผ์„ธ์š”. ์˜ˆ๋ฅผ๋“ค์–ด n์ด 118372๋ฉด 873211์„ ๋ฆฌํ„ดํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์ œํ•œ ์กฐ๊ฑด

  • n์€ 1์ด์ƒ 8000000000 ์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

nreturn
118372873211

ํ’€์ด

function solution(n) {
  return parseInt(
    ("" + n)
      .split("")
      .sort((a, b) => b - a)
      .join(""),
  );
}

๋ฌธ์ž์—ด ์น˜ํ™˜ > ๋ฐฐ์—ด > ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ > ๋ฌธ์ž์—ด ํ•ฉ์น˜๊ธฐ > ์ •์ˆ˜ํ˜• ์น˜ํ™˜


์ •์ˆ˜ ์ œ๊ณฑ๊ทผ ํŒ๋ณ„

๋ฌธ์ œ ๋ณด๊ธฐ

์ž„์˜์˜ ์–‘์˜ ์ •์ˆ˜ n์— ๋Œ€ํ•ด, n์ด ์–ด๋–ค ์–‘์˜ ์ •์ˆ˜ x์˜ ์ œ๊ณฑ์ธ์ง€ ์•„๋‹Œ์ง€ ํŒ๋‹จํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค.
n์ด ์–‘์˜ ์ •์ˆ˜ x์˜ ์ œ๊ณฑ์ด๋ผ๋ฉด x+1์˜ ์ œ๊ณฑ์„ ๋ฆฌํ„ดํ•˜๊ณ , n์ด ์–‘์˜ ์ •์ˆ˜ x์˜ ์ œ๊ณฑ์ด ์•„๋‹ˆ๋ผ๋ฉด -1์„ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•˜์„ธ์š”.

์ œํ•œ ์กฐ๊ฑด

  • n์€ 1์ด์ƒ, 50000000000000 ์ดํ•˜์ธ ์–‘์˜ ์ •์ˆ˜์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

nreturn
121144
3-1

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

  • ์ž…์ถœ๋ ฅ ์˜ˆ#1
    121์€ ์–‘์˜ ์ •์ˆ˜ 11์˜ ์ œ๊ณฑ์ด๋ฏ€๋กœ, (11+1)๋ฅผ ์ œ๊ณฑํ•œ 144๋ฅผ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค.
  • ์ž…์ถœ๋ ฅ ์˜ˆ#2
    3์€ ์–‘์˜ ์ •์ˆ˜์˜ ์ œ๊ณฑ์ด ์•„๋‹ˆ๋ฏ€๋กœ, -1์„ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค.

ํ’€์ด

function solution(n) {
  var sqrt = Math.sqrt(n);

  if (sqrt === parseInt(sqrt)) {
    return (sqrt + 1) ** 2;
  }

  return -1;
}

์ฃผ์–ด์ง„ ์ˆ˜์˜ ์ œ๊ณฑ๊ทผ์ด ์–‘์˜ ์ •์ˆ˜ x์™€ ๊ฐ™์œผ๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•ด๊ฒฐ ๊ฐ€๋Šฅํ•˜๋‹ค. sqrt ** 2 === n ์œผ๋กœ๋„ ๋น„๊ต๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.


๋ฌธ์ž์—ด ๋‚ด ๋งˆ์Œ๋Œ€๋กœ ์ •๋ ฌํ•˜๊ธฐ

๋ฌธ์ œ ๋ณด๊ธฐ

๋ฌธ์ž์—ด๋กœ ๊ตฌ์„ฑ๋œ ๋ฆฌ์ŠคํŠธ strings์™€, ์ •์ˆ˜ n์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ๊ฐ ๋ฌธ์ž์—ด์˜ ์ธ๋ฑ์Šค n๋ฒˆ์งธ ๊ธ€์ž๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด strings๊ฐ€ [โ€œsunโ€, โ€œbedโ€, โ€œcarโ€]์ด๊ณ  n์ด 1์ด๋ฉด ๊ฐ ๋‹จ์–ด์˜ ์ธ๋ฑ์Šค 1์˜ ๋ฌธ์ž โ€œuโ€, โ€œeโ€, โ€œaโ€๋กœ strings๋ฅผ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค.

์ œํ•œ ์กฐ๊ฑด

  • strings๋Š” ๊ธธ์ด 1 ์ด์ƒ, 50์ดํ•˜์ธ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค.
  • strings์˜ ์›์†Œ๋Š” ์†Œ๋ฌธ์ž ์•ŒํŒŒ๋ฒณ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
  • strings์˜ ์›์†Œ๋Š” ๊ธธ์ด 1 ์ด์ƒ, 100์ดํ•˜์ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.
  • ๋ชจ๋“  strings์˜ ์›์†Œ์˜ ๊ธธ์ด๋Š” n๋ณด๋‹ค ํฝ๋‹ˆ๋‹ค.
  • ์ธ๋ฑ์Šค 1์˜ ๋ฌธ์ž๊ฐ€ ๊ฐ™์€ ๋ฌธ์ž์—ด์ด ์—ฌ๋Ÿฟ ์ผ ๊ฒฝ์šฐ, ์‚ฌ์ „์ˆœ์œผ๋กœ ์•ž์„  ๋ฌธ์ž์—ด์ด ์•ž์ชฝ์— ์œ„์น˜ํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

stringsnreturn
[โ€œsunโ€, โ€œbedโ€, โ€œcarโ€]1[โ€œcarโ€, โ€œbedโ€, โ€œsunโ€]
[โ€œabceโ€, โ€œabcdโ€, โ€œcdxโ€]2[โ€œabcdโ€, โ€œabceโ€, โ€œcdxโ€]

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

  • ์ž…์ถœ๋ ฅ ์˜ˆ 1
    โ€sunโ€, โ€œbedโ€, โ€œcarโ€์˜ 1๋ฒˆ์งธ ์ธ๋ฑ์Šค ๊ฐ’์€ ๊ฐ๊ฐ โ€œuโ€, โ€œeโ€, โ€œaโ€ ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ๊ธฐ์ค€์œผ๋กœ strings๋ฅผ ์ •๋ ฌํ•˜๋ฉด [โ€œcarโ€, โ€œbedโ€, โ€œsunโ€] ์ž…๋‹ˆ๋‹ค.
  • ์ž…์ถœ๋ ฅ ์˜ˆ 2
    โ€abceโ€์™€ โ€œabcdโ€, โ€œcdxโ€์˜ 2๋ฒˆ์งธ ์ธ๋ฑ์Šค ๊ฐ’์€ โ€œcโ€, โ€œcโ€, โ€œxโ€์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ •๋ ฌ ํ›„์—๋Š” โ€œcdxโ€๊ฐ€ ๊ฐ€์žฅ ๋’ค์— ์œ„์น˜ํ•ฉ๋‹ˆ๋‹ค. โ€œabceโ€์™€ โ€œabcdโ€๋Š” ์‚ฌ์ „์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋ฉด โ€œabcdโ€๊ฐ€ ์šฐ์„ ํ•˜๋ฏ€๋กœ, ๋‹ต์€ [โ€œabcdโ€, โ€œabceโ€, โ€œcdxโ€] ์ž…๋‹ˆ๋‹ค.

ํ’€์ด

function solution(strings, n) {
  var answer = strings.sort((a, b) => {
    if (a[n] === b[n]) {
      return a.localeCompare(b);
    }

    return a[n].localeCompare(b[n]);
  });

  return answer;
}

์ธ๋ฑ์Šค ๊ฐ’์œผ๋กœ ์ •๋ ฌํ•˜๋ผ๋Š” ๋ง์„ ์ฒ˜์Œ์—” ์ดํ•ดํ•˜์ง€ ๋ชปํ–ˆ๋Š”๋ฐ, ๋œป์„ ์•Œ๊ณ ๋‚˜๋‹ˆ ๊ฐ„๋‹จํ–ˆ๋‹ค. ์ž…์ถœ๋ ฅ ์˜ˆ 1์„ ๊ธฐ์ค€์œผ๋กœ ์„ค๋ช…ํ•˜๋ฉด, u, e, a ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•˜๋ฉด ์•ŒํŒŒ๋ฒณ ์ˆœ์„œ๋Œ€๋กœ a, e, u๊ฐ€ ๋˜๋‹ˆ ๊ฐ ์ธ๋ฑ์Šค ๊ฐ’์ด a, e, u์ธ car, bed, sun ์ˆœ์„œ๊ฐ€ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

์ถ”๊ฐ€ ์ œํ•œ ์กฐ๊ฑด์œผ๋กœ๋Š” ์ธ๋ฑ์Šค ๊ฐ’์ด ๊ฐ™์„ ๊ฒฝ์šฐ๋Š” ์ธ๋ฑ์Šค ๊ฐ’ ์ˆœ์„œ๊ฐ€ ์•„๋‹Œ ์‚ฌ์ „ ์ˆœ ์ •๋ ฌ์„ ํ•˜๊ฒŒ ๋˜๋ฉด ๋œ๋‹ค.

localeCompare๋Š” ๋ฌธ์ž์—ด์„ ๋น„๊ตํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค. ์‚ฌ์ „์ˆœ์œผ๋กœ ๋น„๊ตํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ์— ์•„์ฃผ ์ ํ•ฉํ•œ ํ•จ์ˆ˜์ด๋‹ค.

"a".localeCompare("a"); // 0
"A".localeCompare("B"); // -1
"B".localeCompare("A"); // 1