[문제 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);
↑ 풀이방법 보기
'국비수업 > JavaScript' 카테고리의 다른 글
[Javascript] [연습문제] 배열 실습 (0) | 2022.02.03 |
---|---|
[Javascript] 배열 (0) | 2022.01.29 |
[Javascript] 변수의 스코프, 조건문 과 반복문 (0) | 2022.01.27 |
[Javascript] 연산자 (0) | 2022.01.26 |
[Javascript] 변수와 데이터 타입 (0) | 2022.01.25 |