๐Ÿ›  develop/CodingTest

[JS 100์ œ] ๋ฌธ์ œ10 - ๋ณ„ ์ฐ๊ธฐ

m-ur-phy 2022. 10. 18. 15:14

๋ฌธ์ œ

ํฌ๋ฆฌ์Šค๋งˆ์Šค ๋‚ , ์€๋น„๋Š” ์นœ๊ตฌ๋“ค๊ณผ ํ•จ๊ป˜ ํŒŒํ‹ฐ๋ฅผ ํ•˜๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ, ํฌ๋ฆฌ์Šค๋งˆ์Šค ํŠธ๋ฆฌ๋ฅผ ์‚ฌ๋Š” ๊ฒƒ์„ ๊นœ๋นกํ•˜๊ณ  ๋ง์•˜์Šต๋‹ˆ๋‹ค. ์˜จ ๊ฐ€๊ฒŒ๋ฅผ ๋Œ์•„๋‹ค๋…€ ๋ดค์ง€๋งŒ ํฌ๋ฆฌ์Šค๋งˆ์Šค ํŠธ๋ฆฌ๋Š” ๋ชจ๋‘ ํ’ˆ์ ˆ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜๋Š” ์ˆ˜ ์—†์ด ์€๋น„๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ํŠธ๋ฆฌ๋ฅผ ๋งŒ๋“ค๊ธฐ๋กœ ํ•ฉ๋‹ˆ๋‹ค. 

 

์€๋น„๋ฅผ ์œ„ํ•ด ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด ์ฃผ์„ธ์š”.

์ž…๋ ฅ
5

์ถœ๋ ฅ
    *
   ***
  *****
 *******
*********

 

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

์ •๋‹ต์€

// ๋ณ€์ˆ˜ ์„ค์ •
const num = prompt("ํŠธ๋ฆฌ์˜ ๊ธธ์ด๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”", "5");

// tree ๋งŒ๋“ค๊ธฐ!
for (let i = 1; i <= num; i++) {
  let tree = ""; // ๋ณ€์ˆ˜ ์ดˆ๊ธฐํ™”๋ฅผ for ๋ฌธ ์•ˆ์—
  // ๊ณต๋ฐฑ ๋งŒ๋“ค๊ธฐ!
  for (let s = 1; s <= num - i; s++) {
    tree += " ";
  }
  // ๋ณ„ ๋งŒ๋“ค๊ธฐ!
  for (let j = 1; j <= i * 2 - 1; j++) {
    tree += "*";
  }
  console.log(tree);
}

์ด๋‹ค.

 

๋ฌธ์ œ๋ฅผ ํ’€์–ด๋‚ธ ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

1. ๋ฌธ์ œ ๋ถ„์„ ๋ฐ ๋ณ€์ˆ˜ ์„ค์ •

์ฒ˜์Œ ํŠธ๋ฆฌ์˜ ์ฆ๊ฐ€ํญ์„ ์‚ดํŽด๋ณด์ž. ์ž…๋ ฅ๋ฐ›์€ ๊ฐ’์œผ๋กœ ํŠธ๋ฆฌ ๊ธธ์ด๊ฐ€ ๊ฒฐ์ •๋˜๋ฉฐ, ํ•œ๋ฒˆ์— 2์”ฉ ์ฆ๊ฐ€๋˜๊ณ  ์žˆ๋‹ค. 

๊ธธ์ด๋ฅผ ์ž…๋ ฅ๋ฐ›์„ ๋ณ€์ˆ˜์™€, tree ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•ด์ค€๋‹ค.

 

const num = prompt("ํŠธ๋ฆฌ์˜ ๊ธธ์ด๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”", "5");
let tree = "";

 

 

2. for ๋ฌธ

ํฐ for ๋ฌธ์„ ๋งŒ๋“ค์–ด ์ž…๋ ฅ๋ฐ›์€ number ๋งŒํผ  for๋ฌธ์„ ๋Œ๋ฆฐ๋‹ค. (ํŠธ๋ฆฌ์˜ ๊ธธ์ด)

for (let i = 1; i <= num; i++) {
  console.log("*");
}

// ๊ฒฐ๊ณผ
*
*
*
*
*

 

3. ๋ณ„์ฐ๊ธฐ

๋ณธ๊ฒฉ์ ์œผ๋กœ ๋ณ„์„ ์ฐ๋Š” ์ค‘์ฒฉ for ๋ฌธ์„ ์ž‘์„ฑํ•ด์ค€๋‹ค. ๋ณ€์ˆ˜ ์ดˆ๊ธฐํ™”๋ฅผ for ๋ฌธ ๋‚ด๋ถ€์— ์„ค์ •ํ•ด์ฃผ์–ด, i ๊ฐ’์ด ์ฆ๊ฐ€๋  ๋•Œ๋งˆ๋‹ค ์ดˆ๊ธฐํ™”๋ฅผ ์‹œ์ผœ์ฃผ๊ฒŒ ํ•˜์˜€๊ณ , ์ฆ๊ฐ€ ํญ์ด 2์”ฉ ์ฆ๊ฐ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— *2๋ฅผ ํ•ด์ฃผ๋˜, ์ฒ˜์Œ ๊ฐ’์ด 2๋กœ ์‹œ์ž‘๋˜๊ธฐ ๋•Œ๋ฌธ์— -1์„ ํ•ด์ฃผ์—ˆ๋‹ค.

for (let i = 1; i <= num; i++) {
  let tree = ""; // ๋ณ€์ˆ˜ ์ดˆ๊ธฐํ™”๋ฅผ for๋ฌธ ๋‚ด๋ถ€์— ์„ค์ •ํ•ด์ฃผ์–ด, i ๊ฐ’์ด ์ฆ๊ฐ€๋  ๋•Œ๋งˆ๋‹ค ์ดˆ๊ธฐํ™”๋ฅผ ์‹œ์ผœ์ค€๋‹ค.

  // ๋ณ„ ๋งŒ๋“ค๊ธฐ!
  for (let j = 1; j <= i * 2 - 1; j++) { // (* 2 - 1) ์„ ํ•ด์ฃผ์–ด ์ฒ˜์Œ ์‹œ์ž‘์€ 1 ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์˜€๋‹ค.
    tree += "*";
  }
  console.log(tree);
}

// ๊ฒฐ๊ณผ
* 
*** 
***** 
******* 
*********

 

 

3. ๊ณต๋ฐฑ์ฐ๊ธฐ

ํŠธ๋ฆฌ๋ฅผ ๊ฐ€์šด๋ฐ๋กœ ๋ฐฐ์น˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ณต๋ฐฑ์„ ์ถœ๋ ฅํ•˜๋Š” for๋ฌธ์„ ํ•˜๋‚˜ ๋” ๋งŒ๋“ค์–ด์ค€๋‹ค. ๊ณต๋ฐฑ s ๋Š” ๊ฐˆ ์ˆ˜๋ก ์ ์–ด์ ธ์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, num - i ๋ฅผ ํ†ตํ•ด ์ „์ฒด๋ฅผ ๋„๋Š” ํฐ for๋ฌธ์˜ ์ฆ๊ฐ€ํ•˜๋Š” ๊ฐ’ i ์”ฉ ๋นผ์ฃผ์—ˆ๋‹ค.

 

// ๋ณ€์ˆ˜ ์„ค์ •
const num = prompt("ํŠธ๋ฆฌ์˜ ๊ธธ์ด๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”", "5");

// tree ๋งŒ๋“ค๊ธฐ!
for (let i = 1; i <= num; i++) {
  let tree = "";
  
  // ๊ณต๋ฐฑ ๋งŒ๋“ค๊ธฐ!
  for (let s = 1; s <= num - i; s++) {
    tree += " ";
  }
  
  // ๋ณ„ ๋งŒ๋“ค๊ธฐ!
  for (let j = 1; j <= i * 2 - 1; j++) {
    tree += "*";
  }
  console.log(tree);
}

// ๊ฒฐ๊ณผ

    * 
   *** 
  ***** 
 ******* 
*********

 

 

์ •๋‹ต

const n = prompt('์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”.');
let tree = '';

for(let i=1; i<=n; i++){
  let star = '';
  for(let j=1; j<=n-i; j++){
    star += ' ';
  }
  for(let k=1; k<=2*i-1; k++){
    star += '*';
  }
  tree += star + '\n';
}

console.log(tree);

 

for๋ฌธ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ๋น„์Šทํ•˜๋‹ค. ๋‹ค๋ฅธ์ ์€ tree๋ฅผ ์ „์—ญ๋ณ€์ˆ˜๋กœ ์„ค์ •ํ•ด์ฃผ์–ด for๋ฌธ ๋ฐ”๊นฅ์—์„œ console๋กœ ์ถœ๋ ฅํ•˜๋„๋ก ๋งŒ๋“  ๊ฒƒ์ด๋‹ค.