๐ŸŸฃ ์˜ค๋Š˜์˜ ๋ฌธ์ œ ํšŒ๊ณ 

๊น€ํƒœ์šฑยท2023๋…„ 4์›” 3์ผ
0
post-thumbnail

๐Ÿคฆ ์˜ค๋Š˜์˜ ๋ฌธ์ œ ํ•ฅ์ง #1

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] Lv1: ์ง์‚ฌ๊ฐํ˜• ๋ณ„์ฐ๊ธฐ

๋ฌธ์ œ ์„ค๋ช…
์ด ๋ฌธ์ œ์—๋Š” ํ‘œ์ค€ ์ž…๋ ฅ์œผ๋กœ ๋‘ ๊ฐœ์˜ ์ •์ˆ˜ n๊ณผ m์ด ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.
๋ณ„(*) ๋ฌธ์ž๋ฅผ ์ด์šฉํ•ด ๊ฐ€๋กœ์˜ ๊ธธ์ด๊ฐ€ n, ์„ธ๋กœ์˜ ๊ธธ์ด๊ฐ€ m์ธ ์ง์‚ฌ๊ฐํ˜• ํ˜•ํƒœ๋ฅผ ์ถœ๋ ฅํ•ด๋ณด์„ธ์š”.

์ œํ•œ์‚ฌํ•ญ
*n๊ณผ m์€ ๊ฐ๊ฐ 1000 ์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

์ž…๋ ฅ
5 3
์ถœ๋ ฅ
#####
#####
#####

๋‚˜์˜ ํ’€์ด

function star(a, b) {
  let stars = "";
  for (let i = 0; i < b; i++) {
    for (let j = 0; j < a; j++) {
      stars += "*";
    }
    stars += "\n";
  }
  return stars;
}

๊ตฌํ˜„ ์ ‘๊ทผ
1. ํ‘œ์ค€ ์ž…๋ ฅ ๋ฐฉ์‹์— ๋Œ€ํ•ด์„œ๋„ ๋‹ค๋ค„๋ณด์ง€ ์•Š์•˜๋˜ ํ„ฐ๋ผ ์ž…๋ ฅ์ด ์–ด๋–ป๊ฒŒ ์ด๋ค„์ง€๊ณ  ์ž…๋ ฅ ๋œ ๊ฐ’์ด ์™œ ์ €๋ ‡๊ฒŒ ๋ฐ˜ํ™˜ ๋˜๋Š”์ง€ ์•Œ ์ˆ˜ ์—†์—ˆ์–ด์„œ ๊ฒฐ๊ตญ ํ’€์ด๋ฅผ ์ฐธ๊ณ ,,

2. ์ด์ค‘ for๋ฌธ์„ ์ ์šฉ์‹œ์ผœ์•ผ ํ•˜๋Š”๋ฐ ์ด์ค‘ for๋ฌธ์˜ ์›๋ฆฌ ํŒŒ์•…๊ณผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋™์ž‘ ์›๋ฆฌ์˜ ์ดํ•ด๊ฐ€ ์•„์ง ๋ถ€์กฑํ–ˆ์–ด์„œ ๊ฒฐ๊ตญ ํ’€์ด๋ฅผ ์ฐธ๊ณ  ํ•˜์˜€๋‹ค,, ใ… ใ… 

๋ฌธ์ œ ์ 
1. ํ‘œ์ค€ ์ž…๋ ฅ ๋ฐฉ์‹์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด์ž.

์ง€๊ธˆ์˜ ์›๋ฆฌ๋ฅผ ์ข€ ๋” ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ํ’€์ด ์ฝ”๋“œ๋ฅผ ๋จผ์ € ์‹คํ–‰ ํ•ด๋ณด์•˜๋‹ค.

์‹คํ–‰ ๊ฒฐ๊ณผ๊ฐ€ ์ˆซ์ž ๊ฐ’ 5์™€ 3์ด ๋‚˜์˜ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜์˜€๋‹ค.
๊ฐœ๋ฐœ์ž ์ฝ˜์†”์—์„œ ๋ฐ›์•„์˜จ ์ž…๋ ฅ๊ฐ’์„ 'data'์ธ์ž์— ์ž…๋ ฅํ•˜์—ฌ ํ•ด๋‹น
'data'๋ฅผ ๋ฐฐ์—ด์— ๋งž๊ฒŒ ํ˜• ๋ณ€ํ™˜์„ ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜์ธ ์…ˆ์ด์—ˆ๋‹ค.


2. ์ด์ค‘ for๋ฌธ์ด ๋™์ž‘๋˜๋Š” ์›๋ฆฌ์™€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ฝ”๋“œ๋ฅผ ์ฝ์–ด๊ฐ€๋Š” ์›๋ฆฌ์— ๋Œ€ํ•ด ๋‹ค์‹œ ํ•œ ๋ฒˆ ์ƒ๊ฐํ•˜๊ฒŒ ๋๋‹ค.

function star(a, b) {
  let stars = "";
  for (let i = 0; i < b; i++) {
    for (let j = 0; j < a; j++) {
      stars += "*";
    }
    stars += "\n";
  }
  return stars;
}

์œ„ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด for๋ฌธ์˜ ์›๋ฆฌ๋Š”
์ฆ‰, ์ฒซ ๋ฒˆ์งธ for ๋ธ”๋ก ์•ˆ์˜ for๋ฌธ์ด ๋‹ค ์‹คํ–‰ ๋œ ๋‹ค์Œ ๋ธ”๋ก ์•ˆ์˜ ๋‘๋ฒˆ ์งธ ๋ผ์ธ์œผ๋กœ ๋„˜์–ด๊ฐ€ stars += '\n'์ด ์‹คํ–‰๋˜๊ณ  ๋‹ค์‹œ for ์กฐ๊ฑด์œผ๋กœ ๋„˜์–ด์˜จ ๋‹ค์Œ ๋ธ”๋ก ์•ˆ์˜ ์ฒซ ๋ฒˆ์งธ ๋ผ์ธ์œผ๋กœ ํ–ฅํ•˜๊ฒŒ ๋˜๋Š” ๊ฒƒ.

๋‹ค์‹œ ํ•œ ๋ฒˆ ํด๋กœ์ ธ(closure)์˜ ์›๋ฆฌ์™€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŠน์„ฑ์ธ ์ธํ„ฐํ”„๋ฆฌํ„ฐ์–ด์˜ ์ดํ•ด์›๋ฆฌ๋ฅผ ์ƒ๊ฐํ•˜๊ฒŒ ๋˜๋Š” ๊ณ„๊ธฐ๊ฐ€ ๋˜์—ˆ๋‹ค.


๋‹ค๋ฅธ ์‚ฌ๋žŒ ํ’€์ด

#1

process.stdin.setEncoding('utf8');
process.stdin.on('data', data => {
    const n = data.split(" ");
    const a = Number(n[0]), b = Number(n[1]);
    const row = '*'.repeat(a)
    for(let i =0; i < b; i++){
        console.log(row)
    }

});

ํ’€์ด
๋ฐ˜๋ณต์— ๋ฐ˜๋ณต์„ ์“ธ ํ•„์š” ์—†์ด repeat ๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•˜์—ฌ repeat๋งŒํผ ๋ณ„์ด ๋ฐ˜๋ณต๋˜๋Š” ์ถœ๋ ฅ์„ ๋งŒ๋“ค๋ฉด ๋๋˜ ๊ฒƒ.


#2

process.stdin.setEncoding('utf8');
process.stdin.on('data', data => {
    const n = data.split(" ");
    const a = Number(n[0]), b = Number(n[1]);
    console.log((('*').repeat(a)+`\n`).repeat(b))
});

ํ’€์ด
ํ˜น์€ ๋” ๊ฐ„๊ฒฐํ•˜๊ฒŒ ํ•œ ์ค„๋กœ ๋๋‚ผ ์ˆ˜๋„ ์žˆ์—ˆ๋‹ค.


๐Ÿคฆ ์˜ค๋Š˜์˜ ๋ฌธ์ œ ํ•ฅ์ง #2

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] Lv2: JadenCase ๋ฌธ์ž์—ด ๋งŒ๋“ค๊ธฐ

๋ฌธ์ œ ์„ค๋ช…
JadenCase๋ž€ ๋ชจ๋“  ๋‹จ์–ด์˜ ์ฒซ ๋ฌธ์ž๊ฐ€ ๋Œ€๋ฌธ์ž์ด๊ณ , ๊ทธ ์™ธ์˜ ์•ŒํŒŒ๋ฒณ์€ ์†Œ๋ฌธ์ž์ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. ๋‹จ, ์ฒซ ๋ฌธ์ž๊ฐ€ ์•ŒํŒŒ๋ฒณ์ด ์•„๋‹ ๋•Œ์—๋Š” ์ด์–ด์ง€๋Š” ์•ŒํŒŒ๋ฒณ์€ ์†Œ๋ฌธ์ž๋กœ ์“ฐ๋ฉด ๋ฉ๋‹ˆ๋‹ค. (์ฒซ ๋ฒˆ์งธ ์ž…์ถœ๋ ฅ ์˜ˆ ์ฐธ๊ณ )
๋ฌธ์ž์—ด s๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, s๋ฅผ JadenCase๋กœ ๋ฐ”๊พผ ๋ฌธ์ž์—ด์„ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

์ œํ•œ์‚ฌํ•ญ

  • s๋Š” ๊ธธ์ด 1 ์ด์ƒ 200 ์ดํ•˜์ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.
  • s๋Š” ์•ŒํŒŒ๋ฒณ๊ณผ ์ˆซ์ž, ๊ณต๋ฐฑ๋ฌธ์ž(" ")๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
    - ์ˆซ์ž๋Š” ๋‹จ์–ด์˜ ์ฒซ ๋ฌธ์ž๋กœ๋งŒ ๋‚˜์˜ต๋‹ˆ๋‹ค.
    - ์ˆซ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๋‹จ์–ด๋Š” ์—†์Šต๋‹ˆ๋‹ค.
    - ๊ณต๋ฐฑ๋ฌธ์ž๊ฐ€ ์—ฐ์†ํ•ด์„œ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

sreturn
"3people unFollowed me""3people Unfollowed Me"
"for the last week""For The Last Week"

๋‚˜์˜ ํ’€์ด

function solution(s) {
  var answer = s.split(" ").map((e) => e[0].toUpperCase());

  return answer;
}

console.log(solution("3people unFollowed me"));

๊ตฌํ˜„ ์ ‘๊ทผ
1. ํ•ด๋‹น ์ž…๋ ฅ๋œ ๋ฌธ์ž์—ด์„ ๋‹จ์–ด๋ณ„๋กœ ๋‚˜๋ˆ„๊ธฐ ์œ„ํ•ด split๋ฉ”์†Œ๋“œ์— ์ธ์ž๋ฅผ ๊ณต๋ฐฑ์„ ํฌํ•จํ•˜์—ฌ ๋‚˜๋ˆ„์–ด ์คŒ.
2.map ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด element์˜ [0] ์ธ๋ฑ์Šค์— ์†ํ•˜๋Š” ๊ฐ’๋“ค์„ ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฉ”์†Œ๋“œ toUpperCase()์‚ฌ์šฉ.
3. ํ•˜์ง€๋งŒ ๋ฐ˜ํ™˜ ๊ฐ’์€ ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜๋œ 3, U, M ๋งŒ ๊ฒฐ๊ณผ๊ฐ’ ๋ฐ˜ํ™˜.
4. ๋’ค์— ๋ฌธ์ž์—ด์€ ์–ด๋–ป๊ฒŒ ๋ถ™์—ฌ์„œ ์˜ค๋ฉด ์ข‹์„์ง€ ๊ณ ๋ฏผํ•˜๋‹ค gpt์—๊ฒŒ ๋ฌผ์–ด๋ณด๊ฒŒ ๋๋‹ค.

ํ•ด๋‹น ์งˆ๋ฌธ์„ ํ†ตํ•ด ๋’ค์— ๋ฌธ์ž์—ด ๊นŒ์ง€ ๋ถ™์–ด์„œ ๊ฒฐ๊ณผ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•œ ํ›„.
"๊ทธ๋Ÿผ ๋ถ™์–ด์˜ค๋Š” ๋ฌธ์ž์—ด๋“ค์€ ์†Œ๋ฌธ์ž๋กœ ์˜ค๊ฒŒ๋˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ ๋˜๊ฒ ๋„ค?"
์‹ถ์–ด์„œ slice(1)๋’ค์— .toLowerCase() ํ•จ์ˆ˜๋ฅผ ์ ์šฉํ•ด๋ณด์•˜๋‹ค.

function solution(s) {
  var answer = s
    .split(" ")
    .map((e) => e[0].toUpperCase() + e.slice(1).toLowerCase());

  return answer.join(" ");
} 

๊ฒฐ๊ณผ์ ์œผ๋กœ ๊ตฌํ˜„์ด ์ œ๋Œ€๋กœ ์ž‘๋™๋˜๋Š” ๊ฒƒ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค!
ํก์กฑํ•œ ์ƒํƒœ๋กœ ์ œ์ถœ์„ ํ•˜์˜€์œผ๋‚˜

ํ•˜์˜€์œผ๋‚˜,,!

์ˆ˜ ์—†์ด ์Ÿ์•„์ง€๋Š” ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ๋“ค.. ์™œ ๋‚˜๋Š” ๊ฒƒ์ธ์ง€ ๊ฒฐ๊ตญ ์ดํ•ดํ•  ์ˆ˜ ์—†์–ด ์งˆ๋ฌธํ•˜๊ธฐ ์ฝ”๋„ˆ์— ๋“ค์–ด๊ฐ€ ๊ฐ™์€ ์งˆ๋ฌธ์ด ์žˆ๋Š” ๊ฒƒ์„ ๋ณด๊ณ  ์•„์ฐจํ•˜๊ฒŒ ๋๋‹ค.

๋‹คํ–‰์ด ๊ฐ™์€ ์งˆ๋ฌธ์„ ํ•˜์‹  ๋ถ„์ด ๊ณ„์…จ์—ˆ๊ณ ,

๊ทธ ์ด์œ ๊ฐ€ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ์ธ์ž ์ค‘ ์—ฐ์†๋œ ๋นˆ ๋ฌธ์ž์—ด์ด ์˜ค๊ฒŒ ๋œ๋‹ค๋ฉด split ๋ฉ”์†Œ๋“œ๊ฐ€ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜์ง€ ๋ชป ํ•ด undefined ๋•Œ๋ฌธ์— ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ๊ฐ€ ์ƒ๊ธด๋‹ค๊ณ  ํ•œ๋‹ค.

๊ทธ๋ ‡๊ฒŒ ์ตœ์ข…์ ์œผ๋กœ ๋‹ต๋ณ€์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ˆ˜์ •ํ•˜๊ฒŒ ๋œ ์ฝ”๋“œ๋Š”

function solution(s) {
  let answer = s
    .split(" ")
    .map((e) => (e ? e[0].toUpperCase() + e.slice(1).toLowerCase() : ""));

  return answer.join(" ");
}

๋ฌผ๋ก  ์Šค์Šค๋กœ ์ž‘์„ฑํ•œ ๋‹ต๋ณ€ ๋ณด๋‹ค๋Š” ๋„์›€์„ ๋ฐ›์€ ๊ฒƒ์ด ๋งŽ๋‹ค๊ณ  ๋Š๋ผ์ง€๋งŒ ์ ‘๊ทผ ์‹œ๋„๋ฅผ map์„ ํ†ตํ•˜์—ฌ ํ•  ์ˆ˜ ์žˆ์„๊นŒ๋ผ๋Š” ์‹œ์ž‘๋ถ€ํ„ฐ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์—์„œ ์กฐ๊ธˆ์˜ ๋งŒ์กฑ์„ ํ•˜๊ฒŒ ๋๋‹ค.

๋‹ค์Œ ๋ถ€ํ„ฐ๋Š” ์ €๋Ÿฐ ์งˆ๋ฌธ์— ๋‹ต๋ณ€์„ ํ•  ์ˆ˜ ์žˆ์„ ์ •๋„์˜ ์‹ค๋ ฅ๊นŒ์ง€ ๊ธธ๋Ÿฌ๋ณด์ž!


๋‹ค๋ฅธ ์‚ฌ๋žŒ ํ’€์ด

#1

function solution(s) {
    return s.split(" ").map(v => v.charAt(0).toUpperCase() + v.substring(1).toLowerCase()).join(" ");
}

ํ’€์ด
1. map์ด ์ˆœํšŒํ•˜๋Š” ํ•ด๋‹น element์˜ 0๋ฒˆ์งธ ์ธ๋ฑ์Šค๋ฅผ ์ถ”์ถœ๋งŒ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ charAt ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด ์ธ์ž์˜ ํ…Œ์ŠคํŠธ๊ฐ€ ํ†ต๊ณผํ•˜์ง€ ๋ชป ํ•˜๋ฉด ๋นˆ ๋ฌธ์ž์—ด์ด ๋ฐ˜ํ™˜๋˜๊ฒŒ ์„ค์ • ํ•œ ๊ฒƒ.

MDN ํ‘œ์ค€๋‚ด์žฅ๊ฐ์ฒด String.prototype.charAt()

charAt() ํ•จ์ˆ˜๋Š” ๋ฌธ์ž์—ด์—์„œ ํŠน์ • ์ธ๋ฑ์Šค์— ์œ„์น˜ํ•˜๋Š” ์œ ๋‹ˆ์ฝ”๋“œ ๋‹จ์ผ๋ฌธ์ž๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๊ตฌ๋ฌธ
str.charAt(index)

๋งค๊ฐœ๋ณ€์ˆ˜

  • 0๊ณผ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด - 1 ์‚ฌ์ด์˜ ์ •์ˆ˜๊ฐ’.
  • ์ธ์ž๋ฅผ ์ƒ๋žตํ•˜๋ฉด ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ 0๋ฅผ ์„ค์ •๋˜๊ณ  ์ฒซ ๋ฌธ์ž๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

    index
    ๋ฐ˜ํ™˜ ๊ฐ’
  • ์ง€์ •๋œ ์ธ๋ฑ์Šค์— ํ•ด๋‹นํ•˜๋Š” ์œ ๋‹ˆ์ฝ”๋“œ ๋‹จ์ผ๋ฌธ์ž๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  • ๋งŒ์•ฝ ์ธ๋ฑ์Šค๊ฐ€ ๋ฌธ์ž์—ด ๊ธธ์ด๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ ๋นˆ ๋ฌธ์ž์—ด (์˜ˆ) " " ์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

์ด๋ ‡๊ฒŒ ๋˜ ๋ฉ”์†Œ๋“œ ํ•˜๋‚˜๋ฅผ ๋ฐฐ์›Œ๊ฐ‘๋‹ˆ๋‹ค.


๐Ÿคฆ ์˜ค๋Š˜์˜ ๋ฌธ์ œ ํ•ฅ์ง #3

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] Lv1: ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜์™€ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜

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

์ œํ•œ์‚ฌํ•ญ

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

์ž…์ถœ๋ ฅ ์˜ˆ

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

๋‚˜์˜ ํ’€์ด

์ˆ˜ํ•™ ๊ณต์‹์„ ํ†ตํ•œ,, ์•Œ๊ณ ๋ฆฌ์ฆ˜,, ๋„ˆ๋ฌด๋‚˜ ๊ดด๋กœ์› ๋‹ค,, 
์ˆ˜ํ•™์„ ์† ๋†“์€์ง€ ์˜ค๋ž˜๋ผ์„œ ๊ทธ๋Ÿฐ์ง€ ์•„๋ฌด๊ฒƒ๋„ ํ•  ์ˆ˜ ์—†๋Š” ์ž์‹ ์ด 
ํ•œํƒ„ ์Šค๋Ÿฝ๊ธฐ๋งŒ ํ–ˆ๋‹ค ๊ทธ๋ ‡๊ฒŒ ํ’€์ด๋ฅผ ์•Œ์•„๋ณด๊ฒŒ ๋๊ณ 
์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ ๋ฒ•์ด๋ผ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์•Œ๊ฒŒ ๋๋‹ค!

๊ทธ ํ’€์ด๋Š”

function solution(n, m) {
  var answer = [];
  const greatest = (a, b) => {
    if (b === 0) return a;
    return greatest(b, a % b);
  };
  const least = (a, b) => (a * b) / greatest(a, b);
  return [greatest(n, m), least(n, m)];
}

์ถœ์ฒ˜ velog
1. ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ•์„ ์ด์šฉํ•˜์—ฌ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋ฅผ ๊ตฌํ•ฉ๋‹ˆ๋‹ค.
์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ•์ด๋ž€ ์ฃผ์–ด์ง„ ์ธํ’‹ ์ค‘ ํฐ ๊ฐ’์„ a, ์ž‘์€ ๊ฐ’์€ b, a๋ฅผ b๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ r์ด๋ผ๊ณ  ๊ฐ€์ •ํ•œ๋‹ค๋ฉด,

a > b, a % b .. r 
b % r .. r2
r % r2 .. r3

์œ„ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜๋‹ค๋ณด๋ฉด ๋‚˜๋จธ์ง€๊ฐ€ 0์ด ๋˜๋Š” ์ˆœ๊ฐ„์ด ์˜ต๋‹ˆ๋‹ค.
๋‚˜๋จธ์ง€๋ฅผ 0์œผ๋กœ ๋งŒ๋“ค์–ด ์ฃผ๋Š” ๋‚˜๋ˆ ์ฃผ๋Š” ์ˆ˜๊ฐ€ ์ตœ๋Œ€ ๊ณต์•ฝ์ˆ˜๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

2. ์œ„ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜๋‹ค๋ณด๋ฉด ๋‚˜๋จธ์ง€๊ฐ€ 0์ด ๋˜๋Š” ์ˆœ๊ฐ„์ด ์˜ต๋‹ˆ๋‹ค. ๋‚˜๋จธ์ง€๋ฅผ 0์œผ๋กœ ๋งŒ๋“ค์–ด ์ฃผ๋Š” ๋‚˜๋ˆ ์ฃผ๋Š” ์ˆ˜๊ฐ€ ์ตœ๋Œ€ ๊ณต์•ฝ์ˆ˜๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์‚ฌ๋žŒ ํ’€์ด

#1

function gcdlcm(a, b) {
    var r;
    for(var ab= a*b;r = a % b;a = b, b = r){}
    return [b, ab/b];
}

ํ’€์ด
for๋ฌธ ์•ˆ์˜ ์กฐ๊ฑด์„ ๊ธฐ๋ณธ ๊ณต์‹์ด ์•„๋‹Œ, ๋ฐ˜๋ณตํ•˜๊ณ ์ž ํ•˜๋Š” ์กฐ๊ฑด๋“ค์˜
๋ณ€์ˆ˜๋ฅผ ๋‹ค์–‘ํ•˜๊ฒŒ ์„ ์–ธ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋๋‹ค.

๐Ÿ˜ฎโ€๐Ÿ’จ ์ •๋ฆฌ

์ด๋ฒˆ์— ๋ฐฐ์šฐ๊ฒŒ ๋œ ์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ•๊ณผ for๋ฌธ์˜ ์กฐ๊ฑด ๋ณ€ํ˜•์— ๋Œ€ํ•ด ์ž˜ ์ตํ˜€๋‘๊ณ  ๋‹ค์Œ์—๋Š” ์‘์šฉํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ์ดํ•ด๋ฅผ ์ตํ˜€๋†“์ž!

profile
๋ฐฉ๋ฒ•์„ ์—ฐ๊ตฌํ•  ์ค„ ์•„๋Š” ๊ฐœ๋ฐœ์ž!

0๊ฐœ์˜ ๋Œ“๊ธ€