변수와 타입_연습문제

유슬기·2022년 12월 19일
0

프론트엔드

목록 보기
2/64
post-thumbnail

1. computeAverageLengthOfWords2

문제

두 단어를 입력받아 두 단어의 평균 길이를 내림하여 리턴해야 합니다.

입력

인자 1 : word1
string 타입의 알파벳 문자열
word1.length는 10 이하

인자 2 : word2
string 타입의 알파벳 문자열
word2.length는 10 이하

출력

number 타입을 리턴해야 합니다.

풀이

function computeAverageLengthOfWords2(word1, word2) {
  // 문제: 두 단어 평균 길이를 내림하여 리턴
  // 두 단어 길이 각각 구해 평균값 내기 (word1.length + word2.length) / 2
  // 평균값 내림처리 Math.floor()
  return Math.floor((word1.length + word2.length) / 2);
}

2. isPythagorean

문제

삼각형의 세 변을 입력받아 직각삼각형(pythagorean)인지 여부를 리턴해야 합니다.

입력

인자 1 : side1
number 타입의 삼각형 한 변 (1 이상의 정수)
인자 1 : side2
number 타입의 삼각형 한 변 (1 이상의 정수)
인자 1 : side3
number 타입의 삼각형 한 변 (1 이상의 정수)

출력

boolean 타입을 리턴해야 합니다.

주의 사항

삼각형의 각 세 변은 무작위로 입력됩니다.
자바스크립트에서 x의 제곱(x squared)을 구하는 방법은 3가지 입니다. 세 가지 방법을 모두 사용해야 합니다.
arr.sort 사용은 금지됩니다.
제곱을 구할 때는 입력으로 주어지는 변수를 그대로 사용해야 합니다.

풀이 1 (조건문 사용)

function isPythagorean(side1, side2, side3) {
  // TODO: 여기에 코드를 작성합니다.
  let pow1 = side1 * side1; 
  let pow2 = side2 ** 2;
  let pow3 = Math.pow(side3, 2);

  if (pow1 > pow2 && pow1 > pow3) {
    return pow1 === pow2 + pow3;
  } else if (pow2 > pow1 && pow2 > pow3) {
      return pow2 === pow1 + pow3;
  } else {
      return pow3 === pow1 + pow2;
  }
}

풀이 2 (논리합 연산자 사용)

처음 문제를 봤을 때 조건문 쓰는게 맞나..? 조건문 없이 긴 변을 어떻게 알고 함수를 짜..? (아직 조건문 챕터 들어가기 전)라는 생각이 들었는데, 곰곰히 생각해 보니 단순하게 논리합 연산자를 쓰면 되는거였다.

function isPythagorean(side1, side2, side3) {
  // TODO: 여기에 코드를 작성합니다.
  let pow1 = side1 * side1; 
  let pow2 = side2 ** 2;
  let pow3 = Math.pow(side3, 2);
  
  return (pow1 + pow2) === pow3 || (pow2 + pow3) === pow1 || (pow1 + pow3) === pow2;
}

3. takeLetters

문제

수(num)와 문자열을 입력받아 차례대로 num개의 문자로 구성된 문자열을 리턴해야 합니다.

입력

인자 1 : num
number 타입의 정수 (num >= 0)
인자 2 : str
임의의 길이의 문자열

출력

string 타입을 리턴해야 합니다.

주의 사항

num과 str.length 중 더 작은 수만큼 저장(take)합니다.

풀이 1

function takeLetters(num, str) {
  // TODO: 여기에 코드를 작성합니다.
  return str.substr(0, num); // 0번째 인덱스부터 num개 자르기 
}

풀이 2

function takeLetters(num, str) {
  return str.slice(0, num); // 0번째 인덱스부터 num 바로 전 인덱스까지 자르기
}

4. compareOnlyAlphabet

문제

두 개의 문자열을 입력받아 대소문자를 구분하지 않고(case insensitive) 서로 같은지 여부를 리턴해야 합니다.

입력

인자 1 : str1
string 타입의 문자열
인자 2 : str2
string 타입의 문자열

출력

boolean 타입을 리턴해야 합니다.

풀이

function compareOnlyAlphabet(str1, str2) {
  // TODO: 여기에 코드를 작성합니다.
  str1 = str1.toUpperCase(); // 대문자로 리턴
  str2 = str2.toUpperCase(); // 대문자로 리턴
  return str1 === str2; // 비교하기
}

5. showTime

문제

시간, 분, 초를 입력받아 현재 시각을 나타내는 메세지를 리턴해야 합니다.

입력

인자 1 : hour
number 타입의 시간 (1 이상 12 이하의 정수)
인자 2 : min
number 타입의 분 (0 이상 59 이하의 정수)
인자 3 : sec
number 타입의 초 (0 이상 59 이하의 정수)

출력

string 타입을 리턴해야 합니다.

주의 사항

플러스 연산자(+) 사용은 금지됩니다. ('현재 시각은 ' + hour + '시 ' + min + '분 ' + sec + '초 입니다.')

풀이

function showTime(hour, min, sec) {
  // TODO: 여기에 코드를 작성합니다.
  return `현재 시각은 ${hour}${min}${sec}초 입니다.`
} // 템플릿 리터럴 사용
profile
아무것도 모르는 코린이

0개의 댓글