Leeyanggoo
[JS] 문제가 죽지도 않고 또 왔네 본문
01. 다음의 결괏값을 작성하시오. ⭕
{
let num = 0;
while(false){
num++;
if( num == 3 ){
continue;
}
if( num > 10 ){
break;
}
}
console.log(num);
}
0
02. 다음의 결괏값을 작성하시오. ⭕
{
let a = 6, b = 9, c = 3, result;
result = ++a + b++ + ++c;
console.log(result);
console.log(a+b+c);
}
20
21
03. 결괏값을 작성하시오. ⭕
{
function func(){
let a = [];
for(i=1; i<=5; i++){
a += [i];
}
console.log(a);
}
func();
}
12345
04. 결괏값을 작성하시오. ❌
{
let arr = [3,4,1,4,1,3,4,9,8,3];
for(let i=0; i<10; i++){
if(i % 3 == 2){
console.log(arr[i]);
}
}
}
1
3
8
05. 결괏값을 작성하시오. ⭕
{
function func(num1, num2){
if(num1 > num2) return num1
else return num2
}
console.log(func(17, 23) + func(50, 40))
}
73
06. 결괏값을 작성하시오. ⭕
{
function func(index){
console.log("함수가 실행되었습니다." + index);
}
function callback(num){
for(let i=0; i<=5; i++){
num(i);
}
}
callback(func);
}
함수가 실행되었습니다. 0
함수가 실행되었습니다. 1
함수가 실행되었습니다. 2
함수가 실행되었습니다. 3
함수가 실행되었습니다. 4
함수가 실행되었습니다. 5
07. 결괏값을 작성하시오. ⭕
{
for(let i=1; i<=5; i++){
console.log(i);
if(i == 4){
break;
}
}
}
1
2
3
4
08. 결괏값을 작성하시오. ⭕
{
const arr = [100, 200, 300, 400, 500];
const text1 = arr.join("*");
arr.push("600");
const text3 = arr.join("");
arr.pop();
const text4 = arr.join(" ");
console.log(text1);
console.log(text3);
console.log(text4);
}
100*200*300*400*500
100200300400500600
100 200 300 400 500
09. 다음을 결과값을 작성하시오. ⭕
{
let a, b = 10;
for(let i=0; i<5; i++){
a = i;
b -= a;
}
console.log(a, b)
}
4, 0
10. 다음을 결과값을 작성하시오. ⭕
{
function func(){
let i = 10, j = 20, k = 30;
i /= j;
j -= i;
k %= j;
console.log(i);
console.log(j);
console.log(k);
}
func();
}
0.5
19.5
10.5
11. 다음을 결과값을 작성하시오. ⭕
{
let k = 2;
let temp;
for(let i=0; i<=3; i++){
temp = k;
k++;
console.log(temp + "번");
}
}
2번
3번
4번
5번
12. 다음을 결과값을 작성하시오. ⭕
{
let num = 10;
num += 2;
num -= 3;
num *= 5;
num /= 5;
num %= 9;
console.log(num)
}
0
13. 다음을 결과값을 작성하시오. ⭕
{
let num = [1, 5, 1, 2, 7, 5];
for(let i=0; i<6; i++){
if((i+2) % 2 == 0){
console.log(num[i]);
}
}
}
1
1
7
14. 다음을 결과값을 작성하시오. ❌
{
let num = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
for(let i=0; i<=9; i++){
switch(num[i] % 2){
case 1:
console.log(num[i]);
break;
default:
console.log("**");
}
}
}
**
1
**
3
**
5
**
7
**
9
15. 다음을 결과값을 작성하시오. ⭕
{
let cnt = 0;
let sum = 0;
for(let i=0; i<=7; i++){
if(i%2 == 1){
cnt++;
sum += i;
}
}
console.log(cnt + ", "+sum/2);
}
4, 8
16. 다음을 결과값을 작성하시오. ⭕
{
let data = [70, 80, 75, 60, 90];
let best = 1;
let score = 0;
for(let i=0; i<data.length; i++){
if(data[i]>=80) {
best++;
}
if(score < data[i]) {
score = data[i];
}
}
console.log(best, score)
}
3, 90
17. 다음을 결과값을 작성하시오. ❌
{
let a, b, result;
a = 7, b = 4
result = a | b;
console.log(result)
}
7
18. 다음을 결과값을 작성하시오. ⭕
{
function solution(a, b, c){
let answer = "YES", max;
let total = a + b + c;
if(a > b) max = a;
else max = b;
if(c > max) max = c;
if(total-max <= max) answer = "NO";
return answer;
}
console.log(solution(53, 93, 107));
}
YES
19. 다음을 결과값을 작성하시오. ⭕
{
function solution(a, b, c){
let answer;
if(a < b) answer = a;
else answer = b;
if(c <= answer) answer = c;
return answer;
}
console.log(solution(15, 12, 11));
}
11
20. 다음을 결과값을 작성하시오. ⭕
{
function solution(day, arr){
let answer = 0;
for(let x of arr){
if(x % 10 == day) answer++;
}
return answer;
}
arr = [25, 23, 11, 47, 53, 17, 33, 40];
console.log(solution(0, arr));
}
1
틀린 문제 풀이
04. 결괏값을 작성하시오. ❌
{
let arr = [3,4,1,4,1,3,4,9,8,3];
for(let i=0; i<10; i++){
if(i % 3 == 2){
console.log(arr[i]);
}
}
}
0부터 9까지 총 10번 반복되는 for문 속에 if문이 들어가 있습니다.
if문의 i가 3으로 나눴을 때 2가 남는 경우를 뜻하므로 i가 2, 5, 8인 경우에 해당됩니다.
console.log(arr[i])이므로 배열 arr[2], arr[5], arr[8]이 출력되므로 정답은 1, 3, 8이 됩니다.
14. 다음을 결과값을 작성하시오. ❌
{
let num = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
for(let i=0; i<=9; i++){
switch(num[i] % 2){
case 1:
console.log(num[i]);
break;
default:
console.log("**");
}
}
}
배열 num의 개수만큼 반복되는 for문 속에 switch문이 들어있습니다.
여기서 주의할 점은 break가 for문이 아닌 switch문에 있다는 것입니다.
따라서 배열 num의 요소 중 2로 나눴을 때 1이 남는 경우는 출력하며 아닌 경우는 "**"이 출력됩니다.
따라서 결과는 ** 1 ** 3 ** 5 ** 7 ** 9가 됩니다. (첫 번째 **은 0부터 시작하기 때문입니다.)
17. 다음을 결과값을 작성하시오. ❌
{
let a, b, result;
a = 7, b = 4
result = a | b;
console.log(result)
}
a와 b를 2진수로 바꾼 뒤 계산하는 문제입니다.
비트 OR 연산자( | )가 쓰였으므로 2진수로 바꾼 7과 4를 OR 연산한 결과가 출력됩니다.
OR 연산자는 각 비트의 대응하는 자리에 하나라도 1이면 1을 반환합니다.
따라서 7은 0111 4는 0100으므로 이 둘을 OR 연산하면 0111 즉 7이 됩니다.