[문제 1] for문을 사용하여 0 부터 10 미만의 정수 중에서 홀수만을 큰 수 부터 출력하시오.

더보기
[풀이 1]

for(let i = 9; i > -1; i--) {
// i에 큰수를 대입하고 증감식은 1씩 감소 (내림차순)
  if(i % 2 == 1) {  
  // 2로 나누어 떨어지지 않는 수를 구한다(홀수)
    console.log(i);
  }
}


[풀이 2]

for(let i = 9; i > -1; i -= 2) {  
// 증감식을 2씩 감소하게하여 값을 나타낼 수 있다.
  console.log(i);
}

↑ 풀이방법 보기

 

[문제 2] 위 문제를 while문으로 사용하여 출력하시오.

더보기
[풀이 1]

let i = 9;  // 초기식
while(i > -1) {  // 조건식
  if(i % 2 == 1) {
    console.log(i);
  }
  i--;  // 증감식
};


[풀이 2]

let i = 9;
while(i > -1) {
  console.log(i);
  i -= 2;  // for문과 마찬가지로 증감식을 변경하여 출력 가능.
};

↑ 풀이방법 보기

 

[문제 3] 1부터 20미만의 정수 중에서 2 또는 3의 배수인 수의 총합을 구하시오.

더보기
[풀이]

let sum = 0;  // 총합을 나타낼 변수 선언 및 초기화

for(let i = 1; i < 20; i++) {
	if(i % 2 === 0 || i % 3 === 0) {
    // 1~19까지 2 또는 3의 배수를 구한다
		sum += i;  
        // 조건을 만족할 때 까지 for문과 if문을 거쳐 나온 값을 sum 변수에 대입
	}
}
console.log(sum);

↑ 풀이방법 보기

 

[문제 4] 두 개의 주사위를 던졌을 때, 눈의 합이 6이 되는 모든 경우의 수를 출력하고 경우의 수는 총 몇가지 인지를 아래와 같이 출력하는 코드를 작성하시오.

[출력예시]

[ 1, 5 ]
[ 2, 4 ]
[ 3, 3 ]
[ 4, 2 ]
[ 5, 1 ]
경우의 수는 5개 입니다.
더보기
[풀이]

let count = "";  // 경우의 수을 대입할 변수 초기화

for(let i = 1; i < 7; i++) {
  for(let j = 1; j < 7; j++) {
    if(i + j === 6) {
    // i가 한바퀴 돌 때 j가 6번 돌아 합이 6이 되는 수를 찾는다
      console.log([i, j]);
      count++;  // 조건을 만족하면 1씩 증가
    }
  }
}
console.log(`경우의 수는 ${count}개 입니다`); // 경우의 수 출력

↑ 풀이방법 보기

 

[문제 5] for 문을 중첩 실행하여 아래와 같은 출력결과를 만드시오. 

[출력예시]

0 1 2 3 
1 2 3 4 
2 3 4 5 
3 4 5 6
더보기
[풀이]

for(let i = 0; i < 4; i++) {  // 첫번째 for문은 열을 관여
	let str = "";  // 빈문자열 초기화
    // 한줄에 출력할 문자열 변수
    
	for(let j = 0; j < 4; j++) {  // 두번째 for문은 행을 관여
		str += i + j;  //
		if(j + 1 < 4) {  // 문자 사이사이에 공백을 넣는 방법
			str += " ";  // 공식처럼 외워두는게 좋다(마지막에 공백이 생기지 않는다)
		}
	}
	console.log(str);
}

↑ 풀이방법 보기

 

[문제 6] 아래와 같은 출력 결과가 나타나도록 중첩 반복문을 for문 형식으로 구현하시오.

[출력 예시]

1
12
123
1234
12345
123456
1234567
더보기
[풀이]

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

↑ 풀이방법 보기

 

[문제 7] number라는 변수를 정의하고 1 혹은 2의 값을 임의로 할당하시오. 이 변수에는 1이나 2밖에 저장될 수 없습니다.

전체를 출력하는 구구단이 아니라 number가 1일 때는 홀수 단(3, 5, 7, 9), number가 2일 때는 입력하면 짝수 단(2, 4, 6, 8)을 출력하는 프로그램을 완성하시오.

더보기
[풀이 1]

const number = 1;  // number가 1 일 경우
// const number = 2;  // number가 2일 경우

let a = number == 2 ? 2 : 3;  
// 삼항연산자를 사용하여 a변수에 대입(number가 2일 경우 2, 아니면 3을 대입)
for(let i = a; i < 10; i += 2) {
// a변수를 i변수에 대입하고 증감식을 2개씩 증가
	for(let j = 1; j < 10; j++) {
		console.log(`${i} x ${j} = ${i*j}`);
	}
}


[풀이 2]

const number = 1;  // number가 1 일 경우
// const number = 2;  // number가 2일 경우

for(let i = 4 - number; i < 10; i += 2) {
// 4-1=3, (4-2=2) 를 i변수에 대입
	for(let j = 1; j < 10; j++) {
		console.log(`${i} x ${j} = ${i*j}`);
	}
}

참고로 난 처음에 아래 처럼 풀었었다.

let number = 1;  // number가 1일 경우
// let number = 2;  // number가 2일 경우

for(let i = 2; i < 10; i++) {
  if(number === 1 && i % 2 !== 0) {
    for(let j = 1; j < 10; j++) {
      console.log(`${i} x ${j} = ${i*j}`);
    }
  } else if(number === 2 && i % 2 === 0){
    for(let j = 1; j < 10; j++) {
      console.log(`${i} x ${j} = ${i*j}`);
    }
  }
}

틀린 답은 아니지만, 수학적 사고방식을 키운다면 풀이1, 2 방식과 같이 더 간결하고 간단하게 문제를 풀 수 있다. (망할 문과머리..)

↑ 풀이방법 보기

 

[문제 8] 별찍기

개발 분야에 입문한다면 누구나 접한다는 알고리즘 문제다.

 삼각형

[출력예시]

삼각형1
*
**
***
****
*****
******
*******

삼각형2
      *
     **
    ***
   ****
  *****
 ******
*******
더보기
삼각형1
for(let i = 0; i < 7; i++) {
	let star = "";
	for(let j = 0; j < i + 1; j++) {
		star += "*";
	}
	console.log(star);
}

삼각형2
for(let i = 0; i < 7; i++) {
	let star = "";
	for(let j = 0; j < 6 - i; j++) {
		star += " ";
	}
	for(let k = 0; k < i + 1; k++ ) {
		star += "*";
	}
	console.log(star);
}

↑ 풀이방법 보기

 

역삼각형

[출력예시]

역삼각형1
*******
******
*****
****
***
**
*

역삼각형2
*******
 ******
  *****
   ****
    ***
     **
      *
더보기
역삼각형1
for(let i = 0; i < 7; i++) {
	let star = "";
	for(let j = 0; j < 7 - i; j++) {
		star += '*';
	}
	console.log(star);
}

역삼각형2
for(let i = 0; i < 7; i++) {
	let star = "";
	for(let j = 0; j < i; j++) {
		star += " ";
	}
	for(let j = 0; j < 7 - i; j++) {
		star += "*";
	}
	console.log(star);
}

↑ 풀이방법 보기

 

피라미드

[출력예시]

      *
     ***
    *****
   *******
  *********
 ***********
*************
더보기
피라미드

for(let i = 0; i < 7; i++) {
	let star = "";
	for(let j = 0; j < 6 - i; j++) {
		star += " ";
	}
	for(let j = 0; j < i * 2 + 1; j++) {
		star += "*";
	}
	console.log(star);
}

↑ 풀이방법 보기

 

다이아몬드

[출력예시]

      *
     ***
    *****
   *******
  *********
 ***********
*************
 ***********
  *********
   *******
    *****
     ***
      *
더보기
[풀이]

for(let i = 0; i < 7; i++) {
  let star = "";
  for(let j = 0; j < 6 - i; j++) {
    star += " ";
  }
  for(let k = 0; k < i * 2 + 1; k++) {
    star += "*";
  }
  // str += "\n";
  console.log(star);
}
for(let i = 0; i < 6; i++) {
  let star = "";
  for(let j = 0; j < i + 1; j++) {
    star += " ";
  }
  for(let k = 0; k < 10 - (i * 2) + 1; k++) {
    star += "*";
  }
  console.log(star);
}

----------------------------------------

// 변수(star)를 for문 밖에서 선언하여 한번에 출력
let star = "";
for(let i = 0; i < 7; i++) {
  for(let j = 0; j < 6 - i; j++) {
    star += " ";
  }
  for(let k = 0; k < i * 2 + 1; k++) {
    star += "*";
  }
  star += "\n";
}
for(let i = 0; i < 6; i++) {
  for(let j = 0; j < i + 1; j++) {
    star += " ";
  }
  for(let k = 0; k < 10 - (i * 2) + 1; k++) {
    star += "*";
  }
  star += "\n"
}
console.log(star);

↑ 풀이방법 보기

+ Recent posts