โ ์ง์ฐ๋๋ ํ๋ก์ ํธ์ ์ธ๋ ฅ์ ๋ ํฌ์ ํ๋ฉด ์คํ๋ ค ๋ ๋ฆ์ด์ง๋ค. โ
- Frederick Philips Brooks
Mythical Man-Month ์ ์
01.
{
let i = 0;
let sum = 0;
while(i < 10){
i = i+1;
if( i % 3 == 0) sum -= i;
if( i % 3 == 1) sum += i;
if( i % 3 == 2) sum *= i
}
console.log(sum)
}
๐ด. ์ ๋ต . 129
๐. ํด์ค
์ด ์ฝ๋๋ 1๋ถํฐ 10๊น์ง์ ์๋ฅผ 3์ผ๋ก ๋๋์์ ๋ ๋๋จธ์ง๊ฐ 0, 1, 2์ธ ๊ฒฝ์ฐ์ ๋ฐ๋ผ ๊ฐ๊ฐ ๋ค๋ฅธ ๊ณ์ฐ์ ์ํํ๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ํฉ์ฐํ๋ ์ฝ๋์
๋๋ค.
โถ ๋ณ์ i๋ 0์ผ๋ก ์ด๊ธฐํ๋๊ณ , while๋ฌธ์ ํตํด i๊ฐ 10๋ณด๋ค ์์ ๋๊น์ง ๋ฐ๋ณตํฉ๋๋ค.
โถ ๋ฐ๋ณต๋ฌธ ์์์๋ i๋ฅผ 1์ฉ ์ฆ๊ฐ์ํค๋ฉด์, i๋ฅผ 3์ผ๋ก ๋๋ ๋๋จธ์ง์ ๋ฐ๋ผ์ ๋ค๋ฅธ ๊ณ์ฐ์ ์ํํฉ๋๋ค.
โถ i๋ฅผ 3์ผ๋ก ๋๋ ๋๋จธ์ง๊ฐ 0์ธ ๊ฒฝ์ฐ, ํ์ฌ์ sum์ i๋ฅผ ๋นผ์ค๋๋ค.
โถ i๋ฅผ 3์ผ๋ก ๋๋ ๋๋จธ์ง๊ฐ 1์ธ ๊ฒฝ์ฐ, ํ์ฌ์ sum์ i๋ฅผ ๋ํด์ค๋๋ค.
โถ i๋ฅผ 3์ผ๋ก ๋๋ ๋๋จธ์ง๊ฐ 2์ธ ๊ฒฝ์ฐ, ํ์ฌ์ sum์ i๋ฅผ ๊ณฑํด์ค๋๋ค.
โถ ๋ฐ๋ณต๋ฌธ์ ๋ชจ๋ ์คํํ ํ์๋ ์ต์ข
์ ์ผ๋ก ๊ณ์ฐ๋ sum์ ์ถ๋ ฅํฉ๋๋ค.
โถ ๋ฐ๋ผ์ ์ด ์ฝ๋์ ์ถ๋ ฅ ๊ฒฐ๊ณผ๋ 129์
๋๋ค.
02.
{
let num = [10, 20, 30, 40, 50];
let i, max, min;
max = min = num[0];
for(i=0; i<5; i++){
if(num[i] > max) max = num[i];
if(num[i] < min) min = num[i];
}
console.log(max, min);
}
๐ด. ์ ๋ต . 50 10
๐. ํด์ค
์ด ์ฝ๋๋ ์ฃผ์ด์ง 5๊ฐ์ ์ ์ค์์ ๊ฐ์ฅ ํฐ ์์ ๊ฐ์ฅ ์์ ์๋ฅผ ์ฐพ์ ์ถ๋ ฅํ๋ ์ฝ๋์
๋๋ค.
โถ ๋ฐฐ์ด num๊ณผ ๋ณ์ i, max, min์ ์ ์ธํฉ๋๋ค.
โถ max์ min์ ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ๊ฐ์ผ๋ก ์ด๊ธฐํํฉ๋๋ค.
โถ ๋ฐ๋ณต๋ฌธ์ ์ด์ฉํด ๋ฐฐ์ด num์์ ๊ฐ์ ํ๋์ฉ ์ฝ์ด์ต๋๋ค.
โถ ์ฝ์ด์จ ๊ฐ์ด max๋ณด๋ค ํฌ๋ฉด max๋ฅผ ํด๋น ๊ฐ์ผ๋ก ๋ณ๊ฒฝํฉ๋๋ค.
โถ ์ฝ์ด์จ ๊ฐ์ด min๋ณด๋ค ์์ผ๋ฉด min์ ํด๋น ๊ฐ์ผ๋ก ๋ณ๊ฒฝํฉ๋๋ค.
โถ ๋ชจ๋ ๊ฐ์ ์ฝ์ด์จ ํ max์ min์ ์ถ๋ ฅํฉ๋๋ค.
โถ ๋ฐ๋ผ์, ์ด ์ฝ๋์ ์ถ๋ ฅ์ ์ฃผ์ด์ง ๋ฐฐ์ด num์์ ๊ฐ์ฅ ํฐ ์ 50๊ณผ ๊ฐ์ฅ ์์ ์ 10์ด ๋ฉ๋๋ค.
03.
{
function func(begin, diff, n){
cnt = 1;
ret = begin;
while(true){
cnt += 1;
ret *= diff;
if(cnt == n) return ret;
}
}
console.log(func(1, 3, 4));
}
๐ด. ์ ๋ต . 27
๐. ํด์ค
์ด ์ฝ๋๋ ๋ฑ๋น์์ด์์ n๋ฒ์งธ ํญ์ ๊ตฌํ๋ ํจ์๋ฅผ ๊ตฌํํ๊ณ ํธ์ถํ๋ ์ฝ๋์
๋๋ค.
๋ฑ๋น์์ด์ด๋ ๊ฐ ํญ์ด ์ ํญ์ ์ผ์ ํ ๋น(r)๋ฅผ ๊ณฑํ ์์ด์
๋๋ค. ์ด ์์ด์ ์ผ๋ฐํญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
โถ an = a1 * r^(n-1)
โถ ์ฌ๊ธฐ์ a1์ ์ฒซ์งธ ํญ์ด๊ณ , r์ ๊ณต๋น, n์ ๋ช ๋ฒ์งธ ํญ์ธ์ง๋ฅผ ๋ํ๋
๋๋ค.
โถ ์ ์ฝ๋์์ func ํจ์๋ ์ฒซ์งธ ํญ(begin), ๊ณต๋น(diff), ๋ช ๋ฒ์งธ ํญ(n)์ ์ธ์๋ก ๋ฐ์ต๋๋ค.
โถ ์ด ํจ์๋ while๋ฌธ์ ์ด์ฉํ์ฌ cnt๋ฅผ 1๋ถํฐ n๊น์ง ์ฆ๊ฐ์ํค๋ฉด์, ret์ diff๋ฅผ ๊ณฑํ ๊ฐ์ ํ ๋นํฉ๋๋ค.
โถ ๊ทธ๋ฆฌ๊ณ cnt๊ฐ n์ด ๋๋ฉด ret ๊ฐ์ ๋ฐํํฉ๋๋ค.
โถ ๋ฐ๋ผ์ func(1, 3, 4)๋ฅผ ํธ์ถํ๋ฉด ์ฒซ์งธ ํญ์ด 1, ๊ณต๋น๊ฐ 3์ธ ๋ฑ๋น์์ด์์ ๋ค ๋ฒ์งธ ํญ์ ๊ตฌํ๋ ๊ฒ์ด๋ฏ๋ก,
โถ a1 = 1, r = 3
โถ a4 = a1 * r^(4-1) = 1 * 3^3 = 27
โถ ๋ฐ๋ผ์ console.log(func(1, 3, 4))์ ๊ฒฐ๊ณผ๋ 27์ด ๋ฉ๋๋ค.
04.
{
let i = 0;
let sum = 0;
while(i < 10){
i = i + 1;
if(i % 2 == 0){
continue
}
sum += i;
}
console.log(sum)
}
๐ด. ์ ๋ต . 25
๐. ํด์ค
์ด ์ฝ๋๋ 1๋ถํฐ 10๊น์ง์ ์ ์ ์ค ํ์๋ง ๋ํ๋ ์ฝ๋์
๋๋ค.
โถ i์ sum ๋ณ์๊ฐ ์ด๊ธฐํ๋ ํ, while ๋ฃจํ๊ฐ ์คํ๋ฉ๋๋ค.
โถ i๋ 1์์ ์์ํ์ฌ, ๋งค ๋ฐ๋ณต๋ง๋ค 1์ฉ ์ฆ๊ฐํฉ๋๋ค.
โถ if๋ฌธ์์ i๊ฐ ์ง์์ธ ๊ฒฝ์ฐ์๋ continue๊ฐ ์คํ๋์ด ํด๋น ๋ฐ๋ณต์ ๊ฑด๋๋๋๋ค.
โถ ๋ฐ๋ผ์, ์ง์์ธ ๊ฒฝ์ฐ sum์ ๋ณํ์ง ์๊ณ , ํ์์ธ ๊ฒฝ์ฐ์๋ง sum์ i๋ฅผ ๋ํฉ๋๋ค.
โถ ๋ฃจํ๊ฐ ๋๋๋ฉด sum์ ๋ํด์ง ๊ฐ์ด ์ถ๋ ฅ๋ฉ๋๋ค. ๋ฐ๋ผ์, 1+3+5+7+9=25๊ฐ ๋ฉ๋๋ค.
05.
{
let num = [56, 4, 3, 65, 78];
let temp;
for(let i=0; i<1; i++){
for(let j=0; j<num.length-i-1; j++){
if(num[j]>num[j+1]){
temp = num[j];
num[j] = num[j+1];
num[j+1] = temp;
}
}
}
console.log(num)
}
๐ด. ์ ๋ต . 4, 3, 56, 65, 78
06.
{
let num = [56, 4, 3, 65, 78];
let min = 9999;
for(let i=0; i<10; i++){
if(min > num[i]){
min = num[i];
}
}
console.log(min)
}
๐ด. ์ ๋ต . 3
07.
{
let num = [3, 4, 5, 7, 8];
let temp;
for(let i=0; i<=3; i++){
for(let j=i+1; j<=4; j++){
if(num[i] < num[j]){
temp = num[i];
num[i] = num[j];
num[j] = temp;
}
}
}
console.log(num);
}
๐ด. ์ ๋ต . 8, 7, 5, 4, 3
08.
{
let num = [1,2,3,4,5];
let sum = 1;
function func(arr){
for(let i=0; i<arr.length; i++) {
sum += arr[i];
}
for(let i=0; i<arr.length; i++){
if(arr[i] % 2 == 0) sum -= arr[i];
}
return sum;
}
console.log(func(num));
}
๐ด. ์ ๋ต . 10
09.
{
let num = ["0","1","2","3","4","5","6","7","8","9"];
let sum = 100;
for(let i=0; i<num.length; i++){
num[i] = i+1;
}
for(let i=0; i<num.length; i++){
if(i % 3 == 1){
sum -= num[i];
}
}
console.log(sum)
}
๐ด. ์ ๋ต . 85
๐. ํด์ค
ํด๋น ์ฝ๋๋ 1๋ถํฐ 10๊น์ง์ ์ซ์๋ก ์ด๋ฃจ์ด์ง ๋ฐฐ์ด num์ ์์ฑํ๊ณ , ๋ฐฐ์ด ์์๋ค ์ค 3์ผ๋ก ๋๋ ๋๋จธ์ง๊ฐ 1์ธ ์์๋ฅผ ์ฐพ์ ๊ทธ ๊ฐ์ sum์์ ๋นผ๋ ๊ฒ์ ๋ชฉ์ ์ผ๋ก ํฉ๋๋ค.
โถ num ๋ฐฐ์ด์ ๊ฐ์ ์ซ์๋ก ๋ณํํฉ๋๋ค.
โถ sum ๋ณ์๋ฅผ 100์ผ๋ก ์ด๊ธฐํํฉ๋๋ค.
โถ num ๋ฐฐ์ด์ ์ํํ๋ฉฐ, ํ์ฌ ์ธ๋ฑ์ค๋ฅผ 3์ผ๋ก ๋๋ ๋๋จธ์ง๊ฐ 1์ธ ๊ฒฝ์ฐ ํด๋น ์์๋ฅผ sum์์ ๋บ๋๋ค.
โถ 100 + 1 + 3 + 4 + 6 + 7 + 9 + 10 - 2 - 5 - 8=85์
๋๋ค.
10.
{
let arr = [1,2,3,4,5];
let temp = [1,2,4,6,8];
let idx = 0;
let flag = true;
for(let i=0; i<arr.length; i++){
flag = false;
if(arr[i] == temp[i]){
flag = true;
}
if(!flag){
temp[idx++] = arr[i];
console.log(temp[idx]);
}
}
}
๐ด. ์ ๋ต . 2, 4, 6
11.
{
let num = [30,40,24,80,99];
let min = 9999;
for(let i=0; i<5; i++){
if(min > num[i]){
min = ________;
}
}
console.log("์ต์๊ฐ : ", min);
}
12.
{
let s1 = "Remember november";
let s2 = s1.slice(0, 3) + s1.slice(12, 16);
let s3 = "r AND you";
console.log(s2 + s3)
}
13.
{
let x = 1;
console.log( !(x>0) );
console.log( x>0 || x<4 );
console.log( x<<2 );
console.log( x&2 );
console.log( x&3 );
}
14.
{
let num = 0;
let i = 1;
while(i<=50){
if(i%7 == 0){
num += i;
}
i++;
}
console.log(num)
}
๐ด. ์ ๋ต . 196
๐. ํด์ค
์ด ์ฝ๋๋ 1๋ถํฐ 50๊น์ง์ ์ ์ค 7์ ๋ฐฐ์์ธ ์๋ค์ ํฉ์ ๊ตฌํ๋ ์ฝ๋์
๋๋ค.
โถ ์ฐ์ ๋ณ์ num๊ณผ i๋ฅผ ๊ฐ๊ฐ 0๊ณผ 1๋ก ์ด๊ธฐํํฉ๋๋ค.
โถ while ๋ฐ๋ณต๋ฌธ์ ์ด์ฉํด i๊ฐ 50๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ๋๊น์ง ๋ฐ๋ณตํฉ๋๋ค.
โถ ๋ฐ๋ณต๋ฌธ ์์์ i๋ฅผ 1์ฉ ์ฆ๊ฐ์ํต๋๋ค.
โถ if ์กฐ๊ฑด๋ฌธ์ ์ฌ์ฉํ์ฌ i๊ฐ 7์ ๋ฐฐ์์ธ์ง ํ์ธํฉ๋๋ค. ๋ง์ฝ 7์ ๋ฐฐ์์ด๋ฉด num์ i๋ฅผ ๋ํฉ๋๋ค.
โถ i๊ฐ 50 ์ดํ์ธ ๋ชจ๋ ์์ ๋ํด ์ด ์์
์ ๋ฐ๋ณตํ ํ, num์ ์ถ๋ ฅํฉ๋๋ค.
โถ ๋ฐ๋ผ์ ์ด ์ฝ๋์ ๊ฒฐ๊ณผ๋ 7์ ๋ฐฐ์์ธ 7, 14, 21, 28, 35, 42, 49๋ฅผ ๋ํ 196์
๋๋ค
15.
{
let result = 0;
for(let i=1; i<999; i++){
if(i%3==0 && i%2 !=0){
result = i;
}
}
console.log(result);
}
16.
{
function func(num){
if(num <= 1){
return 1;
} else {
return num + func(num - 2);
}
}
function main(){
let num = 5;
console.log(func(num))
}
main();
}
๐ด. ์ ๋ต . 7
๐. ํด์ค
17.
{
let a=1, b=1, num;
for(let i=0; i<6; i++){
num = a + b;
a = b;
b = num;
}
console.log(num)
}
๐ด. ์ ๋ต . 7
๐. ํด์ค