โ ์ง์ฐ๋๋ ํ๋ก์ ํธ์ ์ธ๋ ฅ์ ๋ ํฌ์ ํ๋ฉด ์คํ๋ ค ๋ ๋ฆ์ด์ง๋ค. โ
- Frederick Philips Brooks
Mythical Man-Month ์ ์
๐ ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ก๊ทธ๋๋ฐ์ ์ ์ ์ฑ ์ ๋์จ 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๋ฌธ์ ๋ฐ๋ณตํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ถ๋ ฅ์์ผ ๋ ์์ ์ต๋๊ณต์ฝ์๋ฅผ ๊ตฌํด์ค๋๋ค.
โจ ๊ฐ์ฌํฉ๋๋ค.
'javascript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐ์ดํฐ ๋ถ๋ฌ์ค๊ธฐ ์ด์ ๋ฆฌ (15) | 2023.03.06 |
---|---|
์๋ฐ์คํฌ๋ฆฝํธ ํ ์คํธ - ๋ฐ์ดํฐ ๋ถ๋ฌ์ค๊ธฐ (13) | 2023.03.03 |
๋ฐ์ดํฐ ์ ์ด๋ฌธ ์๋ฒฝ ์ ๋ฆฌ (11) | 2023.03.01 |
์๋ฐ์คํฌ๋ฆฝํธ ํจ์์ ์ข ๋ฅ ๋ง์คํฐ ํ๊ธฐ (10) | 2023.02.27 |
์๋ฐ์คํฌ๋ฆฝํธ ๋ฐ์ดํฐ ์ ์ฅํ๊ธฐ ์๋ฒฝ ์ ๋ฆฌ (13) | 2023.02.26 |