이차반복문3_개념01_연속출력.html
<script>
/*
[문제]
1~10 사이의 랜덤 숫자를 다섯 번 반복해서 arr배열에 저장하고,
랜덤 숫자 개수만큼 출력하시오.
[예시]
예를 들어 4, 5, 3, 1, 2 가 나왔다고 한다면,
4444
55555
333
1
22
*/
let arr = [];
for(let i = 0; i < 5; i++){
arr.push(Math.floor(Math.random() * 10) + 1)
for(let j = 0; j < arr[i]; j++){
document.write(arr[i] + " ");
}
document.write("<br>");
}
</script>
이차반복문3_개념02_별삼각형.html
<script>
/*
[문제]
아래와 같이 삼각형을 그려보시오.
[정답]
*
**
***
****
*/
for(let i = 0 ; i < 4; i ++){
for(let j = 0; j < i + 1; j++){
document.write("*");
}
document.write("<br>");
}
</script>
이차반복문3_개념03_별역삼각형.html
<script>
/*
[문제]
아래와 같이 삼각형을 그려보시오.
[정답]
****
***
**
*
*/
for(let i = 4; i > 0; i--){
for(let j = 0 ; j < i; j++){
document.write("*");
}
document.write("<br>");
}
</script>
이차반복문3_개념04_랜덤약수.html
<script>
/*
[문제]
10~100 사이의 랜덤 숫자를 다섯 개 저장한다.
각 숫자의 약수를 전부 출력한다.
[예시]
52 : 1 2 4 13 26 52
81 : 1 3 9 27 81
28 : 1 2 4 7 14 28
11 : 1 11
52 : 1 2 4 13 26 52
/*
*/
let num = [];
for(let i = 0 ; i < 5; i ++){
num.push(Math.floor(Math.random() * 91) + 10);
document.write(num[i] + " : ");
for(let j = 1 ; j <= num[i]; j++){
if(num[i] % j == 0){
document.write(j + " ");
}
}
document.write("<br>");
}
</script>
이차반복문3_개념05_소수여러개.html
<script>
/*
[문제]
2~100 사이의 랜덤 숫자 하나를 저장하고,
2부터 그 숫자 사이의 모든 소수를 출력하시오.
[예시]
r = 20
2 3 5 7 11 13 17 19
*/
let r = Math.floor(Math.random() * 99) + 2;
document.write("r = " + r + "<br>");
for( let i = 2; i <= r; i++){
let count = 0;
for(let j = 1; j <= r; j++){
if(i % j == 0){
count ++;
}
}
if(count == 2){
document.write(i + " ");
}
}
</script>
이차반복문3_문제01_그래프가로.html
<script>
/*
[문제]
0~10 사이의 랜덤 숫자를 다섯 번 반복해서 저장하고
그 랜덤 숫자만큼 * 을 출력하시오.
[예시]
1 : *
10 : **********
0 :
7 : *******
4 : ****
*/
for(let i = 0; i < 5; i++){
let r = Math.floor(Math.random() * 11);
document.write(r + " : ");
for(let j = 0; j < r; j++){
document.write(" * ");
}
document.write("<br>");
}
</script>
이차반복문3_문제02_숫자1삼각형.html
<script>
/*
[문제]
아래와 같이 삼각형을 출력하시오.
[정답]
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
*/
for(let i = 0; i < 5; i ++){
let num = 1;
for(let j = 0; j < i + 1; j++){
document.write(num + " ");
num++;
}
document.write("<br>");
}
</script>
이차반복문3_문제03_숫자2삼각형.html
<script>
/*
[문제]
아래와 같이 삼각형을 출력하시오.
[정답]
1
1 2
1 2 3
1 2 3 1
1 2 3 1 2
1 2 3 1 2 3
1 2 3 1 2 3 1
1 2 3 1 2 3 1 2
1 2 3 1 2 3 1 2 3
1 2 3 1 2 3 1 2 3 1
*/
for(let i = 0 ; i < 10; i++){
let num = 1;
for(let j = 0; j < i + 1; j++){
document.write(num + " ");
num++
if(num == 4){
num = 1;
}
}
document.write("<br>");
}
</script>
이차반복문3_문제04_숫자1역삼각형.html
<script>
/*
[문제]
아래와 같이 삼각형을 출력하시오.
[정답]
12345
1234
123
12
1
*/
for(let i = 0; i < 5; i++){
let num = 1;
for(let j =0 ; j < 5 - i; j++){
document.write(num + " ");
num++;
}
document.write("<br>");
}
</script>
이차반복문3_문제05_숫자2역삼각형.html
<script>
/*
[문제]
아래와 같이 삼각형을 출력하시오.
[정답]
123123
12312
1231
123
12
1
*/
for(let i = 0; i < 6; i++){
let num = 1;
for(let j = 0 ; j < 6 - i; j++){
document.write(num + " ");
num++;
if(num == 4){
num = 1;
}
}
document.write("<br>");
}
</script>
이차반복문3_문제06_별두개삼각형.html
<script>
/*
[문제]
아래와 같이 삼각형을 출력하시오.
[정답]
**
****
******
********
*/
for(let i = 0; i < 4; i++){
for(let j = 0; j < 2 * (i + 1); + j++){
document.write(" * ");
}
document.write("<br>");
}
</script>
이차반복문3_문제07_별두개역삼각형.html
<script>
/*
[문제]
아래와 같이 삼각형을 출력하시오.
[정답]
********
******
****
**
*/
for(let i = 0 ; i < 4; i++){
for(let j = 0; j < 8 - (i * 2); j++){
document.write(" * ");
}
document.write("<br>");
}
</script>
이차반복문3_문제08_숫자두개삼각형.html
<script>
/*
[문제]
아래와 같이 삼각형을 출력하시오.
[정답]
1 2
1 2 3 4
1 2 3 4 5 6
1 2 3 4 5 6 7 8
*/
for(let i = 0 ; i< 4; i++){
let num = 1;
for(let j = 0; j < 2 * (i + 1); j++){
document.write(num + " ");
num++;
}
document.write("<br>");
}
</script>
이차반복문3_문제09_숫자두개역삼각형.html
<script>
/*
[문제]
아래와 같이 삼각형을 출력하시오.
[정답]
1 2 3 4 5 6 7 8
1 2 3 4 5 6
1 2 3 4
1 2
*/
for(let i = 0; i < 4; i++){
let num = 1;
for(let j = 0; j < 8 - (2 * i); j++){
document.write(num + " ");
num++;
}
document.write("<br>");
}
</script>
이차반복문3_문제10_삼각형거꾸로.html
<script>
/*
[문제]
아래와 같이 삼각형을 출력하시오.
[정답]
7
6 7
5 6 7
4 5 6 7
3 4 5 6 7
2 3 4 5 6 7
1 2 3 4 5 6 7
*/
for(let i = 0; i< 7; i++){
let num = 7 - i;
for(let j = 0; j <= i; j++){
document.write(num + " ");
num ++;
}
document.write("<br>");
}
</script>
이차반복문3_문제11_삼각형역거꾸로.html
<script>
/*
[문제]
아래와 같이 삼각형을 출력하시오.
[정답]
1 2 3 4 5 6 7
2 3 4 5 6 7
3 4 5 6 7
4 5 6 7
5 6 7
6 7
7
*/
for(let i = 0; i < 7; i++){
let num = 1 + i;
for(let j = 0; j < 7 - i; j++){
document.write(num + " ");
num++;
}
document.write("<br>");
}
</script>
이차반복문3_문제12_다음소수.html
<script>
/*
[문제]
2~1000 사이의 랜덤 숫자 하나를 저장한다.
위 숫자 바로 다음 소수를 출력하시오.
[예시1]
r = 1000
소수 = 1009
[예시2]
r = 500
소수 = 503
*/
let r = Math.floor(Math.random() * 999) + 2;
document.write("r = " + r + "<br>");
let i = r + 1;
while(true){
let count = 0;
for(let j = 1; j <= i; j++){
if(i % j == 0){
count++;
}
}
if(count == 2){
document.write("소수 = " + i + "<br>");
break;
}
i++;
}
</script>
이차반복문3_문제13_소수개수.html
<script>
/*
[문제]
2~100 사이의 랜덤 숫자 하나를 저장하고,
2부터 그 숫자 사이의 모든 소수의 개수를 출력하시오.
[예시]
r = 20
소수 = 2 3 5 7 11 13 17 19
개수 = 8
*/
let r = Math.floor(Math.random() * 99) + 2;
document.write("r = " + r + "<br>");
let rs = 0;
for(let i = 2; i<r; i++){
let count = 0;
for(let j = 1; j <r; j++){
if(i % j == 0){
count++;
}
}
if(count == 2){
document.write(i + " ");
rs++;
}
}
document.write("<br>개수 = " + rs + "<br>");
</script>
이차반복문4_개념01_약수개수.html
<script>
/*
[문제]
arr배열의 각 값의 약수를 전부 출력하고
각 약수의 개수를 count배열에 추가하시오.
[정답]
1 43
1 5 11 55
1 5 13 65
1 11
count = 2, 4, 4, 2
*/
let arr = [43, 55, 65, 11];
let count = [];
for(let i = 0; i < arr.length; i++){
let sum = 0;
for(let j = 1; j <= arr[i]; j++){
if(arr[i] % j == 0){
document.write(j + " ");
sum++
}
}
count.push(sum);
document.write("<br>" );
}
document.write(count);
</script>
이차반복문4_개념02_토탈짝수.html
<script>
/*
[문제]
[1] 1~50 사이의 랜덤 숫자에서 3의 배수 3개의 합을 total배열에 추가한다.
[2] 위 내용을 총 다섯번 반복한다.
[예시]
36 18 39 : 93
21 27 15 : 63
24 9 42 : 75
21 3 39 : 63
24 6 18 : 48
total = 93, 63, 75, 63, 48
*/
let total = [];
for(let i = 0; i < 5; i++){
let sum = 0;
let count = 0;
while(true){
let r = Math.floor(Math.random() * 50) + 1;
if(r % 3 == 0){
document.write(r + " ");
sum += r;
count ++
}
if(count == 3){
break;
}
}
document.write(" : " + sum + "<br>");
total.push(sum);
}
document.write("total = " + total);
</script>
이차반복문4_개념03_중복숫자반복.html
<script>
/*
[문제]
arr배열에 1~4사이의 랜덤 숫자 4개를 저장한다.
단, 중복없는 숫자로 저장한다.
[예시]
1,4,2,3
*/
let arr = [];
let count = 0;
while(true){
let r = Math.floor(Math.random() * 4) + 1;
let check = false;
for(let i = 0 ; i < arr.length; i++){
if(r == arr[i]){
check = true;
break;
}
}
if(check == false){
arr.push(r);
count ++;
}
if(count == 4){
break;
}
}
document.write(arr);
</script>
이차반복문4_개념04_정렬.html
<script>
/*
[문제]
(1) 현재 인덱스의 값이 나머지 값들을 검사한다.
(2) 제일 큰 값을 찾아서 현재의 값과 교환한다.
(3) 인덱스 1증가한다.
(4) (1~3)을 끝까지 반복한다.
[예시]
10, 50, 30, 40, 80, 19 ==> 80을 찾아내고 교환한다.
80, 50, 30, 40, 10, 19 ==> 50은 나머지 중 이미 제일크다.
80, 50, 30, 40, 10, 19 ==> 40을 찾아내고 교환한다.
80, 50, 40, 30, 10, 19 ==> 30은 나머지 중 이미 제일크다.
80, 50, 40, 30, 10, 19 ==> 19을 찾아내고 교환한다.
80, 50, 40, 30, 19, 10
[정답]
80, 50, 40, 30, 19, 10
*/
let score = [10, 50, 30, 40, 80, 19];
let index = 0;
for(let i =0; i < 6; i++){
let temp = 0;
let Max = 0;
let Maxid = 0;
for( j = index ; j < 6; j++){
if(score[j] > Max){
Max = score[j];
Maxid = j;
}
}
temp = score[i];
score[i] = score[Maxid];
score[Maxid] = temp;
index++;
}
document.write(score);
</script>
이차반복문4_문제01_교집합.html
<script>
/*
[문제]
a배열의 값 중 b배열의 값과 같은 값이 있으면
total배열에 저장한다.
[정답]
total = 20, 30
*/
let a = [10, 20, 30, 60];
let b = [40, 30, 20, 50];
let total = [];
for(let i = 0; i < a.length; i++){
for(let j = 0; j < b.length; j++){
if(a[i] == b[j]){
total.push(a[i]);
}
}
}
document.write("total = " + total);
</script>
이차반복문4_문제02_단일출력.html
<script>
/*
[문제]
arr배열의 숫자를 하나씩 출력한다.
단, 이미 출력이 되어 중복되는 숫자는 출력하지 마시오.
[정답]
1 2 3 4 100
*/
let arr = [1, 1, 2, 2, 3, 3, 4, 100, 3];
let temp = [];
for(let i = 0; i < arr.length; i++){
let check = false;
for(let j = 0; j < temp.length; j++){
if(arr[i] == temp[j]){
check = true;
}
}
if(check == false){
temp.push(arr[i]);
}
}
document.write(temp + "<br>");
</script>
이차반복문4_문제03_로또정렬.html
<script>
/*
[문제]
1~45사이의 랜덤값 6개를 lotto배열에 저장하려 한다.
단, 중복되는 숫자는 없어야 하며,
내림차순 정렬 후 출력하시오.
[예시]
40, 38, 27, 26, 18, 5
*/
let lotto = [];
for(let i = 0; i < 6; i++){
let r = Math.floor(Math.random() * 45) + 1;
let check = false;
for(let j = 0; j < lotto.length; j++){
if(r == lotto[j]){
check = true;
}
}
if(check == false){
lotto.push(r);
} else {
i--;
}
}
document.write("lotto = " + lotto + "<br>");
for(let i = 0; i < lotto.length; i++){
let max = lotto[i];
let maxid = i;
for(let j = i; j < lotto.length; j++){
if(max < lotto[j]){
max = lotto[j]
maxid = j;
}
}
let temp = lotto[i];
lotto[i] = lotto[maxid];
lotto[maxid] = temp;
}
document.write("내림차순 = " + lotto + "<br>");
</script>
이차반복문4_문제04_맥스게임.html
<script>
/*
[문제]
0~4 사이의 랜덤 숫자를 저장해 arr배열에서 그 위치의 값이
최대값인지 검사한다.
만약 최대값이면 그 위치의 값을 0으로 바꾸고,
전부 0이되면 종료한다.
과정을 전부 출력하시오.
[예시]
랜덤 : 3
[11, 87, 42, 0, 24]
랜덤 : 0
[11, 87, 42, 0, 24] <- 최대값이 아니므로 그대로 유지
랜덤 : 1
[11, 0, 42, 100, 24]
...
*/
let arr = [11, 87, 42, 100, 24];
for(let i = 0; i < arr.length; i++){
let r = Math.floor(Math.random() * 5);
document.write("r = " + r + "<br>");
let max = 0;
let maxid = 0;
let check = false
for(let j = i; j < arr.length; j++){
if(max < arr[j]){
max = arr[j];
maxid = j;
}
}
if(arr[maxid] == arr[r]){
arr[r] = 0;
document.write("r이 최대값이다.<br>");
} else {
i--;
document.write("r이 최대값이 아니다.<br>");
}
document.write("arr = " +arr + "<br>");
}
</script>
이차반복문4_문제05_모두홀수개수.html
<script>
/*
[문제]
(1) 1 ~ 9사이의 랜덤값을 4개를 저장 후 비교한다.
(2) 4개의 랜덤값이 모두 홀수이면 1을 total에 추가,
하나라도 홀수가 아니면 2를 total에 추가한다.
(3) (1~2)를 5번 반복한다.
[예시]
[3, 1, 5, 1] 모두 홀수 => total = [1]
[5, 2, 1, 4] 모두 홀수x => total = [1,2]
...
*/
let total = [];
for(let i = 0; i < 5; i++){
let temp = [];
let check = false;
for(let j = 0; j < 4; j++){
let r = Math.floor(Math.random() * 9) + 1;
temp.push(r);
document.write(r + " ");
if(temp[j] % 2 == 0){
check = true;
}
}
if(check == false){
total.push(1);
document.write(" 모두 홀수 => ");
}else {
total.push(2);
document.write(" 모두 홀수가 아니다 => ");
}
document.write(" total = [ " + total + " ]<br>");
}
</script>
이차반복문4_문제06_석차정렬.html
<script>
/*
[문제]
석차를 출력하시오.
[정답]
2 3 4 1
*/
let numList = [1001, 1002, 1003, 1004];
let scoreList = [ 87, 42, 11, 98];
for(let i = 0; i < numList.length; i++){
let count = 0;
for(let j = 0; j < numList.length; j++){
if(scoreList[i] <= scoreList[j]){
count ++;
}
}
document.write(count + " ");
}
</script>
이차반복문4_문제07_숫자야구.html
<script>
/*
[문제]
[1] com리스트에 0~9사이의 랜덤 숫자 3개를 저장하되 중복 값이 없어야 한다.
[2] me리스트에 0~9사이의 랜덤 숫자 3개를 저장하되 중복 값이 없어야 한다.
[3] com과 me 를 비교해서 숫자가 같고 자리도 같으면 strike + 1
[4] com과 me 를 비교해서 숫자가 같고 자리가 틀리면 ball + 1
[5] 사용자에게 strike와 ball 개수를 출력해 보여준다.
계속 반복하면서 strike가 3이 되면 종료한다.
*/
let com = [0, 0, 0];
let me = [0, 0, 0];
while(true){
let strike = 0;
let ball = 0;
for(let i = 0; i < com.length; i++){
let check = false;
let r = Math.floor(Math.random() * 10);
for(let j = 0 ; j < com.length; j++){
if(r == com[j]){
check = true;
}
}
if(check == false){
com[i] = r;
} else {
i--;
}
}
for(let i = 0; i < me.length; i++){
let check = false;
let r = Math.floor(Math.random() * 10);
for(let j = 0 ; j < me.length; j++){
if(r == me[j]){
check = true;
}
}
if(check == false){
me[i] = r;
} else {
i--;
}
}
for(let i = 0; i < com.length; i++){
for(let j = 0; j < me.length; j++){
if(com[i] == me[j] && i == j){
strike++;
}
else if(com[i] == me[j] && i != j){
ball++;
}
}
}
document.write("com = " + com + " me = " + me + "<br>");
document.write("strike = " + strike + " ball " + ball + "<br>");
if(strike == 3){
document.write("종료");
break;
}
document.write("<br>");
}
</script>
이차반복문4_문제08_차집합.html
<script>
/*
[문제]
a와 b 두 배열을 비교해서 서로 겹치지 않는 값을
temp에 저장하고 출력하시오.
[정답]
temp = [6, 4, 20, 3, 17, 13, 7]
*/
let a = [16, 5, 11, 6, 19, 12, 18, 4, 20, 3];
let b = [17, 11, 19, 5, 13, 18, 16, 12, 11, 7];
let temp = [];
for(let i = 0; i < a.length; i++){
let check = false;
for(let j = 0; j < b.length; j++){
if(a[i] == b[j]){
check = true;
}
}
if(check == false){
temp.push(a[i]);
}
}
for(let i = 0; i < a.length; i++){
let check = false;
for(let j = 0; j < b.length; j++){
if(a[j] == b[i]){
check = true;
}
}
if(check == false){
temp.push(b[i]);
}
}
document.write("temp = " + temp + "<br>");
</script>
이차반복문4_문제09_토탈20.html
<script>
/*
[문제]
[1] arr배열에 1~10까지의 랜덤 숫자 3개를 저장 후 출력하시오.
[2] 단, 숫자 3개는 서로 중복되면 안 된다.
[3] 숫자 3개의 합은 반드시 20이어야 한다.
[예시]
[3, 10, 7] o
[5, 10, 5] x
*/
let arr = [0, 0, 0];
while(true){
let sum = 0;
for(let i = 0; i < 3; i++){
let r = Math.floor(Math.random() * 10) + 1;
let check = false;
for(let j = 0; j < arr.length; j++){
if(r == arr[j]){
check == true;
}
}
if(check == false){
arr[i] = r;
sum += r;
}
}
if(sum == 20){
document.write("arr = " + arr + "<br>");
break;
}
}
</script>
이차반복문4_문제10_토탈배열.html
<script>
/*
[문제]
[1] 1~9 사이의 랜덤 숫자 다섯개의 합을 total배열에 추가한다.
[2] 위 내용을 10번 반복하시오.
[예시]
7 2 8 4 5 : 26
2 6 2 6 8 : 24
4 6 7 1 5 : 23
1 9 8 6 9 : 33
6 1 3 1 2 : 13
4 3 7 5 2 : 21
6 2 7 9 3 : 27
5 1 4 4 3 : 17
1 3 9 4 6 : 23
8 3 4 9 5 : 29
total = [26, 24, 23, 33, 13, 21, 27, 17, 23, 29]
*/
let sum = [];
for(let j = 0; j < 10; j++){
let count = 0;
for(let i = 0; i < 5; i++){
let r = Math.floor(Math.random() * 9) + 1;
count += r;
document.write(r + " ")
}
document.write(" : " + count + "<br>");
sum.push(count);
}
document.write("total = [ " + sum + " ] ");
</script>
이차반복문4_문제11_혼자있는숫자.html
<script>
/*
[문제]
arr배열에서 혼자있는 숫자만 출력하시오.
[정답]
20 50
*/
let arr = [10, 20, 30, 40, 40, 10, 30, 10, 50];
let temp = [];
for(let i = 0; i < arr.length; i++){
let count = 0;
for(let j = 0; j < arr.length; j++){
if(arr[i] == arr[j]){
count++;
}
}
if(count == 1){
temp.push(arr[i]);
}
}
document.write(temp);
</script>
이차반복문4_문제12_압축풀기.html
<script>
/*
[문제]
a배열과 count배열은 본래 한 쌍의 데이터로
원래 한 줄로 되어있는 데이터를 두 개의 배열로 압축해 놓은 것이다.
원래대로 압축을 풀려고 한다.
a배열의 값은 저장할 숫자이고
count배열의 값은 a배열 값의 개수이다.
예를 들어 a는 3이고 count는 5이므로 33333이다.
남은 모든 경우도 압축을 풀고 b배열에 저장하고, 출력하시오.
[정답]
b = [3,3,3,3,3,5,5,5,5,5,5,2,4,4,4]
*/
let a = [3, 5, 2, 4];
let count = [5, 6, 1, 3];
let b = [];
for(let i = 0; i < a.length; i ++){
for(let j = 0; j < count[i]; j++){
b.push(a[i]);
}
}
document.write("b = " + b);
</script>