Search

이차배열5_문제08_복권셋트

대분류
STEP08 이차배열
문제 난이도
LV08
소분류
이차배열5_문제

영상

문제

<script> /* [문제] 복권 1개당 7칸으로, 총 5개의 복권을 제작하려 한다. 복권 1줄은 1 또는 7의 랜덤 숫자로 구성되어 있다. 7이 연속으로 3개 이상이면 "당첨"이고, 그 미만은 "꽝"이다. 5개 중에 딱 1개만 당첨 복권이고 나머지 4개는 꽝인 복권을 랜덤으로 생성해서 출력하시오. [예시] 1177117 (꽝) 1117771 (당첨) 7171117 (꽝) 7711771 (꽝) 7171717 (꽝) */ let lotto = [0, 0, 0, 0, 0]; </script>
Java
복사

해설

<script> /* [문제] 복권 1개당 7칸으로, 총 5개의 복권을 제작하려 한다. 복권 1줄은 1 또는 7의 랜덤 숫자로 구성되어 있다. 7이 연속으로 3개 이상이면 "당첨"이고, 그 미만은 "꽝"이다. 5개 중에 딱 1개만 당첨 복권이고 나머지 4개는 꽝인 복권을 랜덤으로 생성해서 출력하시오. [예시] 1177117 (꽝) 1117771 (당첨) 7171117 (꽝) 7711771 (꽝) 7171717 (꽝) */ let lotto = [0, 0, 0, 0, 0]; let mark = 0; let index = 0; while(true) { // 복권 생성 let temp = []; for(let i=0; i<7; i++) { let r = Math.floor(Math.random() * 2); if(r == 0) { r = 7; } temp.push(r); } lotto[index] = temp; document.write(lotto[index]); console.log(lotto[index]); // 당첨복권 확인 let check = false; let count = 0; for(let i=0; i<7; i++) { if(lotto[index][i] == 7) { count += 1; if(count == 3) { check = true; } } else { count = 0; } } if(check) { document.write("(당첨)<br>"); console.log("(당첨)<br>"); mark += 1; } else { document.write("(꽝)<br>"); console.log("(꽝)<br>"); } index += 1; // 당첨 복권이 한개일 때 if(index == 5 && mark == 1) { break; } // 당첨 복권이 한개도 없을 때 if(index == 5 && mark == 0) { index = 0; mark = 0; } // 당첨 복권이 한개 이상일 때 if(index == 5 && mark > 1) { index = 0; mark = 0; } } document.write("<br><br><br>"); // 당첨복권 확인 for(let i=0; i<lotto.length; i++) { let check = false; let count = 0; for(let j=0; j<lotto[i].length; j++) { if(lotto[i][j] == 7) { count += 1; if(count == 3) { check = true; } } else { count = 0; } } document.write(lotto[i]); if(check) { document.write("(당첨)<br>"); console.log("(당첨)<br>"); mark += 1; } else { document.write("(꽝)<br>"); console.log("(꽝)<br>"); } } </script>
Java
복사