Blinking Hello Kitty Angel

javascript

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ•จ์ˆ˜ ๋งˆ๋ฌด๋ฆฌ ๋ฌธ์ œ ํ•จ๊ป˜ ํ’€์–ด๋ณด๊ธฐ

xoouxa 2023. 3. 1. 23:22

โ€œ ์ง€์—ฐ๋˜๋Š” ํ”„๋กœ์ ํŠธ์— ์ธ๋ ฅ์„ ๋” ํˆฌ์ž…ํ•˜๋ฉด ์˜คํžˆ๋ ค ๋” ๋Šฆ์–ด์ง„๋‹ค. โ€

- Frederick Philips Brooks
Mythical Man-Month ์ €์ž
728x90

๐Ÿ“ ๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์ •์„ ์ฑ…์— ๋‚˜์˜จ 155, 156์ชฝ์˜ ํ•จ์ˆ˜์— ๊ด€ํ•œ ๋งˆ๋ฌด๋ฆฌ ๋ฌธ์ œ๋“ค์„

ํ’€์–ด๋ณด์•˜์Šต๋‹ˆ๋‹ค ใƒพ(โ‰งโ–ฝโ‰ฆ*)o

 

Q.  1.  ์–‘์ˆ˜, ์Œ์ˆ˜  ํŒ๋‹จํ•˜์—ฌ ์ฐฝ์— ๋ณด์—ฌ์ฃผ๊ธฐ

์‚ฌ์šฉ์ž๊ฐ€ ํ”„๋กฌํ”„ํŠธ ์ฐฝ์— ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ–ˆ์„ ๋•Œ ๊ทธ ์ˆซ์ž๋ฅผ ํ•จ์ˆ˜๋กœ ๋„˜๊ฒจ์ฃผ๊ณ , ํ•จ์ˆ˜์—์„œ๋Š” ์ˆซ์ž๊ฐ€ ์–‘์ˆ˜์ธ์ง€, ์Œ์ˆ˜์ธ์ง€,

๋˜๋Š” 0์ธ์ง€ ํŒ๋‹จํ•ด์„œ ์•Œ๋ฆผ ์ฐฝ์— ๋ณด์—ฌ์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด๋ณด์„ธ์š”.

โœ๐Ÿป A. ๊ธธ๋ผ์žก์ด

์ˆซ์ž๋ฅผ ๋ฐ›์•„์„œ ์–‘์ˆ˜, ์Œ์ˆ˜, 0์„ ํŒ๋‹จํ•˜๊ณ  ์•Œ๋ฆผ ์ฐฝ์— ํ‘œ์‹œํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค.

parseInt( ) ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ํ”„๋กฌํ”„ํŠธ ์ฐฝ์— ์ž…๋ ฅํ•œ ๋‚ด์šฉ์„ ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กฌํ”„ํŠธ ์ฐฝ์— ์ž…๋ ฅํ•œ ๋‚ด์šฉ์ด ์ˆซ์ž๊ฐ€ ์•„๋‹ˆ๋ฉด parseInt( ) ํ•จ์ˆ˜๋Š” NaN์„ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜ํ™˜๊ฐ’์ด ์ˆซ์ž์ผ ๊ฒฝ์šฐ์—๋งŒ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. 

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ•จ์ˆ˜ ๋งˆ๋ฌด๋ฆฌ ๋ฌธ์ œ 1</title>
</head>
<body>
  <h3>์–‘์ˆ˜, ์Œ์ˆ˜, 0์ธ์ง€ ํŒ๋‹จํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ</h3>
  <script>
    const num = parseInt(prompt("์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”"));

    if(num>0) {
        alert("์–‘์ˆ˜์ž…๋‹ˆ๋‹ค.");
    } else if(num<0) {
        alert("์Œ์ˆ˜์ž…๋‹ˆ๋‹ค.");
    } else {
        alert("NaN");
    }
  </script>
</body>
</html>

๐Ÿ“   

parseInt() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ฃผ์š” ๋ชฉ์ ์€ ๋ฌธ์ž์—ด์—์„œ ์ˆซ์ž๋ฅผ ์ถ”์ถœํ•˜๊ธฐ ์œ„ํ•จ์ž…๋‹ˆ๋‹ค.

์ด ํ•จ์ˆ˜๋Š” ์ž…๋ ฅ๋ฐ›์€ ๋ฌธ์ž์—ด์„ ์‹ค์ œ ์ˆซ์ž๊ฐ’์œผ๋กœ ๋ฐ”๊พธ์–ด ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋ฌธ์ž์—ด์˜ ์ฒซ ๋ถ€๋ถ„์ด ์ˆซ์ž๊ฐ€ ์•„๋‹ ๊ฒฝ์šฐ ๊ฒฐ๊ณผ๋Š” 'NaN'์œผ๋กœ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.

isNaN ( ) ํ•จ์ˆ˜๋ž€, ์ˆซ์ž์ธ์ง€ ์•„๋‹Œ์ง€๋ฅผ ํŒ๋ณ„ํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.

์ˆซ์ž์ด๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•ด ์ฃผ๊ณ  ์ˆซ์ž๊ฐ€ ์•„๋‹ˆ๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•ด ์ค๋‹ˆ๋‹ค. 

 

parseInt( )ํ•จ์ˆ˜๋ฅผ ๋ณ€์ˆ˜๋กœ ์ €์žฅํ•ด์ค๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž๊ฐ€ prompt ํ‚ค์›Œ๋“œ๋กœ ์ง€์ •ํ•˜๋Š” ์ˆซ์ž๋ฅผ ํ•จ์ˆ˜๋กœ ๋„˜๊ฒจ์ฃผ๊ธฐ ์œ„ํ•ด์„œ prompt ํ‚ค์›Œ๋“œ๋ฅผ parseInt( ) ํ•จ์ˆ˜ ์•ˆ์— ์ž…๋ ฅํ•ด์ค๋‹ˆ๋‹ค.

ํ•จ์ˆ˜๋กœ ๋„˜์–ด์™”์œผ๋‹ˆ๊นŒ function ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ์ˆซ์ž๊ฐ€ ์กฐ๊ฑด์‹์ด ๋งž๋Š”์ง€ ํ™•์ธํ•ด์ฃผ๊ธฐ ์œ„ํ•ด์„œ ๋‹ค์ค‘ if๋ฌธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ž…๋ ฅํ•œ ์ˆซ์ž๊ฐ€ ์–‘์ˆ˜์ด๋ฉด ์–‘์ˆ˜์ธ ์˜ฌ๋ฐ”๋ฅธ ์‹คํ–‰๋ฌธ์„, ์Œ์ˆ˜์ด๋ฉด ์Œ์ˆ˜์ธ ์˜ฌ๋ฐ”๋ฅธ ์‹คํ–‰๋ฌธ, ์ž…๋ ฅํ•œ ์ˆซ์ž๊ฐ€ ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์„ ๊ฒฝ์šฐ 0์ด๋ผ๋Š” ๊ฒƒ์„ ์‹คํ–‰ํ•ด์ฃผ๋Š” ์‹คํ–‰๋ฌธ์„ ์ž…๋ ฅํ•ด์ค๋‹ˆ๋‹ค.

๋˜ ๋‹ค๋ฅธ if๋ฌธ์œผ๋กœ !isNaN( ) ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ์ˆซ์ž์ธ์ง€ ์•„๋‹Œ์ง€๋ฅผ ํŒ๋ณ„ํ•ด ์ฃผ๊ณ  ์‹คํ–‰ํ•ด์ฃผ๋ฉด ๊ฐ’์ด ๋‚˜์˜ต๋‹ˆ๋‹ค.  

 

Q.  2. ๋‘ ์ˆ˜์˜ ์ตœ๋Œ€ ๊ณต์•ฝ์ˆ˜ ๊ตฌํ•˜๊ธฐ

2๊ฐœ์˜ ์ˆซ์ž๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ๋‘ ์ˆ˜์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ํ…Œ์ŠคํŠธ ํ•ด๋ด…์‹œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด 4์™€ 12์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋Š” 4๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋‘ ์ˆ˜ ๋ชจ๋‘ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” ์ˆ˜ ์ค‘์—์„œ ๊ฐ€์žฅ ํฐ ๊ฐ’์ด ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜์ž…๋‹ˆ๋‹ค. 

 

โœ๐Ÿป A. ๊ธธ๋ผ์žก์ด

์ฃผ์–ด์ง„ ๋‘ ์ˆ˜ ์ค‘์—์„œ ์–ด๋–ค ์ˆ˜๊ฐ€ ํฐ ์ˆ˜์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๋‘ ์ˆ˜๊ฐ€ ๋ชจ๋‘ ๋‚˜๋ˆ„์–ด๋–จ์–ด์ ธ์•ผ ํ•˜๋ฏ€๋กœ ๋‘ ์ˆ˜ ์ค‘์—์„œ ํฐ ์ˆ˜๊นŒ์ง€ ๋ฐ˜๋ณตํ•˜๋ฉด์„œ ์ž‘์€ ์ˆ˜๋„ ๋‚˜๋ˆ„์–ด๋–จ์–ด์ง€๊ณ , ํฐ ์ˆ˜๋„ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” ์ˆซ์ž๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค.

์ฐพ์„ ๋•Œ๋งˆ๋‹ค ๋ณ€์ˆ˜์— ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ณต์ด ๋ชจ๋‘ ๋๋‚˜๋ฉด ๋ณ€์ˆ˜์—๋Š” ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ํ• ๋‹น๋œ ์•ฝ์ˆ˜๋งŒ ๋‚จ์Šต๋‹ˆ๋‹ค.

function getGCD(n, m) {
            
let max = n > m ? n : m; 
 	

if(n  > m ){
    max = n;
}else{
   	max=m;
}
    
let GCD = 0; 
	for (let i = 1; i <= max; i++){      //max๊ฐ€ i๋ณด๋‹ค ์ปค์•ผํ•จ 
    if (n % i === 0 && m % i === 0){
        GCD = i;   // ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜    
    } 
    
}

//console.log("GCD__"+GCD) 

	return GCD;


console.log(`6๊ณผ 70์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜ : ${getGCD(6,70)}`); 
console.log(`2์™€ 10์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜ : ${getGCD(2, 10)}`);

 

๋จผ์ € ํ•จ์ˆ˜ getGCD๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜ x, y๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์–ด์ง„ ๋‘ ์ˆ˜ ์ค‘์— ์–ด๋–ค ๊ฒƒ์ด ํฐ์ง€ ๋น„๊ตํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ผํ•ญ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•ด ์กฐ๊ฑด์‹์„ ๋งŒ๋“ค๊ณ ,

์‹คํ–‰๋ฌธ์„ ๋งŒ๋“ค์–ด ๋ณ€์ˆ˜max๋ฅผ ์ง€์ •ํ•ด์ค๋‹ˆ๋‹ค.

GCD๋ฅผ 0์œผ๋กœ ์ง€์ •ํ•ด์ฃผ๊ณ  for๋ฌธ์„ ์ด์šฉํ•ด ๋ณ€์ˆ˜ i๊ฐ€ max๊ฐ’๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์•„์งˆ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  if๋ฌธ์„ ์ด์šฉํ•ด x, y๊ฐ’์„ ๋‚˜๋ˆ„์—ˆ์„ ๋•Œ ๋‚˜๋จธ์ง€๊ฐ€ 0์ด๋ผ๋Š” ์กฐ๊ฑด์„ ๊ฑธ์–ด ๋‘˜ ๋‹ค ์ถฉ์กฑํ•˜๋Š” ๊ฐ’์„ GCD๋กœ ๋ฐ›์Šต๋‹ˆ๋‹ค.

๊ทธ ์กฐ๊ฑด์— ์ถฉ์กฑ๋˜๋Š” ๊ฐ’์ด ๋‚˜์˜ฌ๋•Œ๊นŒ์ง€ return๋ฌธ์„ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ถœ๋ ฅ์‹œ์ผœ ๋‘ ์ˆ˜์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋ฅผ ๊ตฌํ•ด์ค๋‹ˆ๋‹ค.

 

โœจ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.