[JavaScript] 제주 코딩 베이스캠프 Code Festival Javascript 100제 #2

문제11 : for를 이용한 기본 활용

1부터 100까지 모두 더하는 Code를 부분에 완성하세요. for를 사용해야 합니다.

let s =0;
 //pass
console.log(s) 

내 풀이

let s =0;
for(i=1; i<=100; i++ ){
    s+= i
}
console.log(s) 
s = 5050

문제12 : 게임 캐릭터 클래스 만들기

데이터
<여기에 class를 작성하세요.>

const x = new Wizard(545, 210, 10);
console.log(x.health, x.mana, x.armor);
x.attack();


출력
545 210 10
파이어볼

내 풀이

let Wizard = class {
  constructor(health, mana, armor){
    this.health = health;
    this.mana = mana;
    this.armor = armor;
  }
  attack(){
    return console.log('파이어볼')
  }
}
const x = new Wizard(245, 210, 10);
console.log(x.health, x.mana, x.armor)
x.attack();

문제13 : 몇번째 행성인가요

우리 태양계를 이루고 있는 행성은 수성, 금성, 지구, 화성, 목성, 토성, 천왕성, 해왕성으로 총 8개 입니다. 저희는 우리 태양계의 n번째 행성이 무엇인지 알고 싶습니다.

입력으로 행성의 순서를 나타내는 숫자 n이 입력됩니다.

출력으로 그 순서에 해당하는 행성의 이름을 출력해 주세요.

예를들어 1이 입력되면, 첫번째 행성인 수성이 출력됩니다.

내 풀이

let solarSystem = ['수성', '금성', '지구', '화성', '목성', '토성','천왕성', '해왕성']
const n = prompt('몇 번째 행성?(숫자로 입력)')
console.log(solarSystem[n -1])

문제14 : 3의 배수인가요?

영희는 친구와 게임을 하고 있습니다. 서로 돌아가며 랜덤으로 숫자를 하나 말하고 그게 3의 배수이면 박수를 치고 아니면 그 숫자를 그대로 말하는 게임입니다.

입력으로 랜덤한 숫자 n이 주어집니다.

만약 그 수가 3의 배수라면 '짝'이라는 글자를, 3의 배수가 아니라면 n을 그대로 출력해 주세요.

내 풀이

const n2 = prompt('랜덤수 입력')
if( n2 % 3 == '0' ){
  console.log('짝')
} else{
  console.log(n2)
}

문제15 : 자기소개

신학기가 시작되고, 아이들이 돌아가면서 자기소개를 하기로 했습니다.

만약 입력으로 김다정이라는 이름이 주어지면 "안녕하세요. 저는 김다정입니다."라고 출력하게해주세요.

내 풀이

const name = prompt('이름입력')
console.log(`안녕하세요. 저는 ${name}입니다.`)

문제16 : 로꾸거

문장이 입력되면 거꾸로 출력하는 프로그램을 만들어 봅시다.

입출력

입력 : 거꾸로
출력 : 로꾸거

내 풀이

const text = prompt('내용입력');
function reverseStr (str){
  let result ='';
  for(let i=str.length-1; i >= 0; i--){
    result = result + str[i];
  }
  return result;
}
console.log(reverseStr(text))

답안

const n = prompt('입력하세요.');

const reverseString = n.split('').reverse().join('');
/*
* split() 메서드는 문자열을 배열로 만들어 반환하고,
* reverse() 메서드는 배열의 순서를 반전하며,
* join() 메서드는 원소를 모두 붙여 문자열로 반환합니다.
*/
console.log(reverseString);

문제17 : 놀이기구 키 제한

유주는 놀이공원 아르바이트 중입니다. 그런데 놀이기구마다 키 제한이 있습니다.

유주가 담당하는 놀이기구는 키가 150cm 이상만 탈 수 있습니다.

입력으로 키가 주어지면 키가 150이 넘으면 YES를 틀리면 NO를 출력하는 프로그램을 작성하세요.

내 풀이

const key = prompt('키를 입력하세요')
if(key < 150){
  console.log('NO')
} else{
  console.log('Yes')
}

문제18 : 평균 점수

영하네 반은 국어, 수학, 영어 시험을 보았습니다. 영하는 친구들의 평균 점수를 구해주기로 했습니다.

공백으로 구분하여 세 과목의 점수가 주어지면 전체 평균 점수를 구하는 프로그램을 작성하세요. 단, 소숫점 자리는 모두 버립니다.

내 풀이

const score = prompt('점수를 입력하세요')
const scoreArray = score.split(' ')
let sum = 0;
for(let i=0; i<scoreArray.length; i++){
  sum += Number(scoreArray[i]);
}
console.log( Math.floor(sum / scoreArray.length))

답안

const scores = prompt('세 과목의 점수를 입력하세요.').split(' ');
let sum = 0;

for (let i=0; i<3; i++){
  sum += parseInt(scores[i], 10); // 십진수의 형태의 숫자로 데이터 타입을 변환합니다.
}

console.log(Math.floor(sum/3)); //Math.floor 메서드는 소수점 자리를 모두 버림합니다.

문제19 : 제곱을 구하자

공백으로 구분하여 두 숫자 a와 b가 주어지면, a의 b승을 구하는 프로그램을 작성하세요.

내 풀이

const number = prompt('두 수를 입력하세요')
const numbers = number.split(' ')
console.log(Math.pow(numbers[0], numbers[1]))

답안

const n = prompt('수를 입력하세요.').split(' ');

console.log(Math.pow(parseInt(n[0], 10), parseInt(n[1], 10)));

문제20 : 몫과 나머지

공백으로 구분하여 두 숫자가 주어집니다.

두번째 숫자로 첫번째 숫자를 나누었을 때 그 몫과 나머지를 공백으로 구분하여 출력하세요.

내 풀이

const number = prompt('두 수를 입력하세요')
const numbers = number.split(' ')
console.log(numbers[0]/numbers[1] , numbers[0]%numbers[1] )

답안

const n = prompt('수를 입력하세요.').split(' ');

const result = Math.floor(parseInt(n[0], 10) / parseInt(n[1], 10));
const left = parseInt(n[0], 10) % parseInt(n[1], 10);

console.log(result, left);

공부 필요한 부분
⭐⭐⭐⭐⭐ class 개념(12번 문제)

변수의 타입을 한번더 체크하는 습관이 필요함.

좋은 웹페이지 즐겨찾기