Honey-Programming

코플릿 복습1 본문

코드스테이츠/ALGORITHM

코플릿 복습1

Latte_is_horse 2020. 7. 12. 01:27

변수) 1-1. 변수 선언하기(Declaration)

- 변수(Variable) :  변할 수 있는 값 

- 변수의 선언 : 어떤 값(value)를 넣을 수 있는 자리를 컴퓨터 메모리에 미리 잡아두었다는 의미

// let` 키워드를 사용하여 `course`라는 변수를 선언하시오
let course;

 

변수) 1-2. 변수에 값 할당하기(Assignment)

// TODO : 선언되어 있는 변수 course에 문자열 "codestates"를 할당하세요.
let course;
course = 'codestates';
// 선언과 할당을 한 줄에 작성 할 수 있다.
let course = 'codestates';

만약 선언을 하지 않고 할당한다면, 에러가 발생

 

변수) 1-3. 값의 표현(Expression)

// TODO : num1에 5를 할당하고, num2에 7을 할당한 후, result에 num1과 num2의 곱을 할당하세요
let num1, num2, result;
num1 = 5, num2 = 7;
result = num1 * num2;
// TODO : num1에 5를 할당하고, num2에 7을 할당한 후, result에 num1과 num2의 곱을 할당하세요
let num1, num2, result;
num1 = 5, num2 = 7;
result = num1 * num2;

// 거속시 문제
let speed, distance, time;
speed = 5, distance = 10;
time = distance / speed; 

 

함수) 2-1. 함수(Function)

- 함수는 입력(input)을 받아 출력(output)을 하는 하나의 작은 기능 단위

// TODO: 속력(speed), 시간(time)이 숫자로 주어졌을 때, 이동한 거리를 변수 distance에 할당하여 반환하는
// getRunCatDistance 함수를 작성하세요.
function getRunCatDistance(speed, time) {
//let distance = speed * time; (선언과 동시에 할당)
  let distance;
  distance = speed * time;

  return distance;
}

 

함수) 2-2. 함수의 선언(DeclareFunction) 2가지 방식

// 방식1) 함수(plusOne) 선언식
function plusOne(input1) {
  input1 += 1;	 
  return input1; 
}

// 방식2) 함수 표현식을 변수(minusOne)에 할당
let minusOne function(input2) {
  input2 -= 1;
  return input2;
}

 

// TODO : 첫 번째 인자에 2를 곱하는 함수 multiplyBy2와 비슷하게
// 첫 번째 인자를 2로 나누는 함수 divideBy2를 선언하세요.
function multiplyBy2(input) {
  input *= 2;
  return input;
}

let divideBy2 = function() {
  input /=2;
  return input;
}

 

함수) 2-3. 함수의 실행(CallFunction)

- 변수에 함수가 담겨있으면, () 괄호를 붙여서 함수를 실행 할 수 있다.

  함수의 입력값을 설정 할 수 있는데, 전달인자(argument) or 인자라고 부른다.

  함수의 반환(return)

  함수가 실행되고 나면, 결과값을 반환(return)한다.

  아무것도 return 하지 않으면 undefined를 반환 

// 문자열을 인자로 받아서 느낌표를 붙여서 리턴해주는 함수 returnWordWithJoy가 있습니다.
// 함수 returnWordWithJoy의 첫 번째 인자로 문자열 "I love coding"을 넣어서 실행하고, 
// 그 결과값을 변수 word에 할당하세요.
let word = returnWordWithJoy('I love coding');

function returnWordWithJoy(word) {
  if(typeof word!== 'string') {
    return 'wrong type';
  } else {
  	return word + '!';
  }
}

// 1. 첫 번째 파라미터(인자)는 문자열이 들어가야 한다.
// 2. 문자열 'I love coding'을 첫 번째 인자로 넣어서 'I love coding!'로 반환

 

기억해야 할 6가지 falsy 값

if (false)

if (null)

if (undefined)

if (0)

if (NAN)

if (' ')

 

조건문) 3-1. _isOldEnoughToDrink

// 어떤 숫자, 연령이 하나 주어졌을 때, 함수는 주어진 연령의 사람이
// 미국에서 합법적으로 술을 마실 수 있는지의 여부를 반환
// 미국에서 술은 21세 이상 부터 마실 수 있다.
function isOldEnoughToDrink(age) {
  if(age >= 21) {
    return true;
  } 
  else {
    return false;  
  }
}

// 1. Boolean 타입으로 리턴
// 2. 나이가 21세 이상인지 아닌지 여부를 판단
// 3. 나이가 21세 이상인 경우 true

 

조건문) 3-2 _checkAge

- 이름과 나이를 입력받아 문자열을 메세지로 출력(리턴)하는 checkAge 함수를 작성
  나이에 따라서, 다른 메세지를 출력할 수 있어야 한다.

// Ex) 이름 : Adrian, 21살이거나 더 나이가 많으면, Welcome, Adrian! 을 리턴
//     이름 : John, 21살보다 적으면, Go home, John!
function checkAge(name, age) {
  if(age >=21) {
    return 'Welcome' + ', ' + name +'!'; // 'Welcom, ' + name + '!';
  } 
  else {
    return 'Go home' + ', ' + name + '!'; // 'Go home, ' + name + '!'; 
  }
}

// 1. 나이가 21세이면, Welcome 메시지를 리턴
// 2. 나이가 21세 넘어가도, Welcome 메시지를 리턴
// 2. 결과는 항상 문자열로 리턴
// 3. 나이가 21세 미만이면, Go home 메시지를 리턴

 

조건문) 3-3_equalsTen

- 숫자가 주어졌을때, "equalsTen" 함수는 숫자가 10과 같은지 반환

function equalsTen(num) {
  return num === 10;
  // if(num === 10) {
  //   return true;
  // } 
  // else {
  //   return false;
  // }
}
// Boolean 타입으로 리턴
// 숫자가 10일 경우 true 리턴
// 숫자가 10보다 클 경우, false 리턴
// 숫자가 10보다 작을 경우, false 리턴

 

조건문) 3-4_isGreaterThan

- 두 숫자가 주어졌을때, 두번째 숫자(num2)가 첫번째 숫자(num1)보다 큰지 반환해야 한다.

function isGreaterThan(num1, num2) {
  if(num2 > num1) {
    return true;
  } 
  else {
    return false;
  }
}
// num1과 num2가 같으면 false 리턴
// Boolean 타입을 리턴
// num2가 num1보다 클 때, true 리턴

 

조건문) 3-5_isEven

- 숫자가 주어졌을때, 숫자가 짝수인지 반환

function isEven(num) {
  if(num %2 === 0) {
  return true;
  }
  else {
  return false;
  }
}
// boolean 타입을 리턴
// 짝수일 경우 true를 리턴
// 숫자가 0일 경우 true를 리턴

 

조건문) 3-6_isEvenAndGreaterThanTen

- 숫자가 주어졌을때, 숫자가 10보다 크고, 짝수인지 반환 

function isEvenAndGreaterThanTen(num) {
  if(num %2 === 0 && num > 10) {
    return true;
  }
  else {
    return false;
  }
}
// boolean 타입을 리턴
// num > 10 => true 리턴
// num = 10 => false 리턴
// num < 10 => false 리턴
// num => 홀수 => false 리턴

 

조건문) 3-7_convertScoreToGrade

- 점수가 주어졌을때, 주어진 점수와 대응하는 등급을 문자열로 반환

  • (100 - 90) --> 'A'
  • (89 - 80) --> 'B'
  • (79 - 70) --> 'C'
  • (69 - 60) --> 'D'
  • (59 - 0) --> 'F'
  • 점수가 100을 초과 or 0 미만이면 문자열 INVALID SCORE 반환
function convertScoreToGrade(score){
  if(score <0 || score >100) {
    return 'INVALID SCORE';
  }
  else if(score >=90 && score <=100) { // else if(90 <= score && score <=100) {
    return 'A';
  }
  else if(score >=80 && score <=89) { // else if(80<= score && score  <=89) {
    return 'B';
  }
  else if(score >=70 && score <=79) { // else if(70 <= score && score <=79) {
    return 'C';
  }
  else if(score >=60 && score <=69) { // else if(60 <= score && score <=69) {
    return 'D';
  }
  else {
    return 'F';
  }
}
// 0보다 작은 점수 => "INVALID SCORE" 문자열 리턴
// 100보다 큰 점수 => "INVALID SCORE" 문자열 리턴
// 문자열을 리턴
// 100점은 'A'를 리턴
// 90점대는 'A'를 리턴
// 80점대는 'B'를 리턴
// 70점대는 'C'를 리턴
// 60점대는 'D'를 리턴
// 0~60점대는 'F'를 리턴

 

조건문) 3-8_convertScoreToGradeWithPlusAndMinus

- 점수가 주어졌을때, 주어진 점수와 대응하는 등급을 문자열로 반환

  • (100 - 90) --> 'A'
  • (89 - 80) --> 'B'
  • (79 - 70) --> 'C'
  • (69 - 60) --> 'D'
  • (59 - 0) --> 'F'
  • 주어진 점수가 100 초과 or 0 미만이면 INVALID SCORE 를 반환
  • 점수의 1의 자리가 0~2 사이면 등급과 함께 '-'를 반환
  • 만약 점수의 1의 자리가 8~9 사이라면 등급과 함께 '+'를 반환
  • F+ 와 F- 는 존재하지 않습니다.

function plusOrMinus(unitDigit) {
  if(unitDigit >=0 && unitDigit <=2) { return '-'; }
  else if(unitDigit >=8 && unitDigit <=9) { return '+'; }
  else { return ''; }
}

function convertScoreToGradeWithPlusAndMinus(score) {
  let unitDigit = score %10;
  let grade;

  if(score >100 || score < 0) { return 'INVALID SCORE'; }
  if(score === 100) { return 'A+'; }

  if(score >=90) { grade = 'A'; }
  else if(score >=80) { grade = 'B'; }
  else if(score >=70) { grade = 'C'; }
  else if(score >=60) { grade = 'D'; }
  else if(score >=0)  { return 'F'; }

  return grade + plusOrMinus(unitDigit);
}

// 0보다 작은 점수는 'INVALID SCORE'라는 문자열을 리턴
// 100보다 큰 점수는 'INVALID SCORE'라는 문자열을 리턴
// 문자열을 리턴
// 0과 60점 사이는 'F'를 리턴
// 60과 62점 사이는 'D-'를 리턴
// 63과 67점 사이는 'D'를 리턴
// 68과 69점 사이는 'D+'를 리턴
// 70과 72점 사이는 'C-'를 리턴
// 73과 77점 사이는 'C'를 리턴
// 78과 79점 사이는 'C+'를 리턴
// 80과 82점 사이는 'B-'를 리턴
// 83과 87점 사이는 'B'를 리턴
// 88과 89점 사이는 'B+'를 리턴
// 90과 92점 사이는 'A-'를 리턴
// 93과 97점 사이는 'A'를 리턴
// 98과 100점 사이는 'A+'를 리턴

 

조건문) 3-9_or

- boolean 두개가 주어졌을때, "or" 함수는 || 연산자에 대응하는 true 나 false 를 반환

 ! 와 && 연산자를 사용                                      || 연산자를 사용 X

 

function or(expression1, expression2) {
  if(expression1 === true && expression2 === true) {
    return true;
  }
  if(expression1 !== true && expression2 === true) {
    return true;
  }
  if(expression1 === true && expression2 !== true) {
    return true;
  }
  if(expression1 !== true && expression2 !== true) {
    return false;
  }  
}

 

function or(expression1, expression2) {
  if(expression1 !== expression2) { return true }
  else if(expression1 === true && expression2 === true) { return true }
  else { return false }
}

 

// OR 논리 연산자를 사용하지 마세요
// Boolean 형식으로 리턴해야 합니다
// 첫번째 값이 true이면, true를 리턴해야 합니다
// 두번째 값이 true이면, true를 리턴해야 합니다
// 두 값 모두 true이면, true를 리턴해야 합니다
// 두 값 모두 false이면, false를 리턴해야 합니다

조건문) 3-10_isEitherEvenAndLessThan9

- 숫자 2개가 주어졌을때, 두 숫자 중 하나가 짝수인지, 그리고 두 숫자 모두 9보다 작은지를 확인

두 조건을 모두 만족 했을 때만 true를 반환

/* if 문을 중첩하는 방법 */
function isEitherEvenAndLessThan9(num1, num2) {
  if(num1 < 9 && num2 < 9){
    if(num1 % 2 === 0 || num2 % 2 === 0){
      return true;
    }
  }
  return false;
}

 

function isEitherEvenAndLessThan9(num1, num2) {
 return (num1 < 9 && num2 < 9) && (num1 %2 ===0 || num2 %2 ===0) ? true : false;
}

'코드스테이츠 > ALGORITHM' 카테고리의 다른 글

test1 ~ test 7 (보관)  (0) 2020.08.31
코플릿 복습4(형변환, 반복문)  (0) 2020.07.18
코플릿 복습3(Math 메서드)  (0) 2020.07.18
코플릿 복습2  (0) 2020.07.12
문제풀기  (0) 2020.06.16
Comments