ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JS 100์ œ] ๋ฌธ์ œ10 - ๋ณ„ ์ฐ๊ธฐ
    ๐Ÿ›  develop/CodingTest 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๋กœ ์ถœ๋ ฅํ•˜๋„๋ก ๋งŒ๋“  ๊ฒƒ์ด๋‹ค.
     

     

    ๋Œ“๊ธ€