10._followingDay
문제: 요일을 입력받아 해당 요일의 다음 요일을 리턴해야 합니다.
주의:
- string 타입을 리턴해야 합니다.
- 올바른 요일을 입력받은 경우, 다음 요일을 리턴해야 합니다.
- 올바른 요일이 아닌 경우에는 '올바른 요일이 아닙니다' 라는 문구를 리턴해야 합니다.
function followingDay(day) {
if (day === '월요일'){
return '화요일'
} else if (day === '화요일'){
return '수요일'
} else if (day === '수요일'){
return '목요일'
} else if (day === '목요일'){
return '금요일'
} else if (day === '금요일'){
return '토요일'
} else if (day === '토요일'){
return '일요일'
} else if (day === '일요일'){
return '월요일'
} else {
return '올바른 요일이 아닙니다'
}
}
function followingDay(day) {
if (day === '월요일') {
return '화요일';
} else if (day === '화요일') {
return '수요일';
} else if (day === '수요일') {
return '목요일';
} else if (day === '목요일') {
return '금요일';
} else if (day === '금요일') {
return '토요일';
} else if (day === '토요일') {
return '일요일';
} else if (day === '일요일') {
return '월요일';
} else {
return '올바른 요일이 아닙니다';
}
}
11._isEitherEvenAndLessThan9
문제: 두 개의 수를 입력받아 아래의 2가지 조건을 모두 만족하는지 검사합니다.
- EitherEven: 적어도 하나의 수는 짝수이다.
- LessThan9: 두 수 모두 9보다 작다.
주의:
- boolean 타입으로 리턴해야 합니다.
function isEitherEvenAndLessThan9(num1, num2) {
if (num1 < 9 && num2 < 9) {
if (num1 % 2 === 0 || num2 % 2 === 0) {
return true
} else {
return false
}
} else {
return false
}
}
function isEitherEvenAndLessThan9(num1, num2) {
if (num1 < 9 && num2 < 9) {
if (num1 % 2 === 0 || num2 % 2 === 0) {
return true;
}
return false;
}
return false;
}
12._convertScoreToGrade
문제: 점수를 입력받아 점수에 해당하는 등급을 리턴해야 합니다.
주의:
- string 타입을 리턴해야 합니다.
- (100 - 90) --> 'A'
- (89 - 80) --> 'B'
- (79 - 70) --> 'C'
- (69 - 60) --> 'D
- (59 - 0) --> 'F'
- 만약 주어진 점수가 100을 초과하거나 0 미만이라면 문자열 'INVALID SCORE'를 리턴해야 합니다.
function convertScoreToGrade(score) {
if (score > 100 || score < 0){
return 'INVALID SCORE'}
if (score === 100 || score >= 90 ) {
return 'A'
} else if (score >= 80) {
return 'B'
} else if (score >= 70) {
return 'C'
} else if (score >= 60) {
return 'D'
} else if (score >= 0) {
return 'F'
} else {
return 'INVALID SCORE'
}
}
function convertScoreToGrade(score) {
let grade;
if (score > 100 || score < 0) {
return 'INVALID SCORE';
}
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) {
grade = 'F';
}
return grade;
}
13._convertScoreToGradeWithPlusAndMinus
문제: 점수를 입력받아 해당하는 등급을 리턴해야 합니다.
주의:
- string 타입을 리턴해야 합니다.
- 각 등급의 최저 점수는 아래와 같습니다. ('F'의 경우 최대 점수를 표기)
90 이상 --> 'A'
80 이상 --> 'B'
70 이상 --> 'C'
60 이상 --> 'D'
60 미만 --> 'F'
- 만약 주어진 점수가 100을 초과하거나 0 미만인 경우, 문자열 'INVALID SCORE'를 리턴해야 합니다.
- 각 등급의 최고 점수보다 7점 이하인 경우, 등급과 함께 '-'를 리턴해야 합니다.
- 각 등급의 최저 점수보다 8점 이상인 경우, 등급과 함께 '+'를 리턴해야
합니다.
function convertScoreToGradeWithPlusAndMinus(score) {
if (score > 100 || score < 0){
return 'INVALID SCORE'}
if (score === 100) {
return 'A+'
} else if (score >= 98 && score < 100){
return 'A+'
} else if (score >= 94 && score < 98) {
return 'A'
} else if (score >= 90 && score < 94) {
return 'A-'
} else if (score >= 88 && score < 90) {
return 'B+'
} else if (score >= 84 && score < 88) {
return 'B'
} else if (score >= 80 && score < 84) {
return 'B-'
} else if (score >= 78 && score < 80) {
return 'C+'
} else if (score >= 74 && score < 78) {
return 'C'
} else if (score >= 70 && score < 74) {
return 'C-'
} else if (score >= 68 && score < 70) {
return 'D+'
} else if (score >= 64 && score < 68) {
return 'D'
} else if (score >= 60 && score < 64) {
return 'D-'
} else if (score >= 0 && score < 60) {
return 'F'
} else {
return 'INVALID SCORE'
}
}
function plusOrMinus(score) {
const extra = score % 10;
if (extra <= 2) {
return '-';
} else if (extra >= 8) {
return '+';
} else {
return '';
}
}
function convertScoreToGradeWithPlusAndMinus(score) {
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) {
grade = 'F';
}
if (grade !== 'F') {
grade = grade + plusOrMinus(score);
}
return grade;
}
14._isPythagorean
문제: 삼각형의 세변을 입력받아 직각삼각형(pythagorean)인지 여부를 리턴해야 합니다.
주의:
- boolean 타입을 리턴해야 합니다.
- 삼각형의 각 세변은 무작위로 입력됩니다.
- 자바스크립트에서 x의 제곱(x squared)을 구하는 방법은 3가지 입니다. 세 가지 방법을 모두 사용해야 합니다.
- arr.sort 사용은 금지됩니다.
- 제곱을 구할 때는 입력으로 주어지는 변수를 그대로 사용해야 합니다.
function isPythagorean(side1, side2, side3) {
if ( Math.pow(side1, 2) + side2 **2 === (side3 * side3)) {
return true
} else if ( Math.pow(side1, 2) + side3 **2 === (side2 * side2)) {
return true
} else if ( Math.pow(side2, 2) + side3 **2 === (side1 * side1)) {
return true
} else {
return false
}
}
function isPythagorean(side1, side2, side3) {
const pow1 = side1 * side1;
const pow2 = side2 ** 2;
const pow3 = Math.pow(side3, 2);
if (pow1 === pow2 + pow3 || pow2 === pow1 + pow3 || pow3 === pow1 + pow2) {
return true;
}
return false;
}
15. or
문제: 두 개의 boolean 값을 입력받아 or 연산을 적용한 것과 같은 결과를 리턴해야 합니다.
주의:
- boolean 타입을 리턴해야 합니다.
- || 연산자 사용은 금지됩니다.
function or(expression1, expression2) {
if ( expression1 === true && expression2 !== true) {
return true
} else if (expression2 === true && expression1 !== true) {
return true
} else if ( expression1 === true && expression2 === true) {
return true
} else {
return false
}
}
function or(expression1, expression2) {
if (expression1 === true && expression2 === true) {
return true;
} else if (expression1 === true && expression2 !== true) {
return true;
} else if (expression1 !== true && expression2 === true) {
return true;
} else if (expression1 !== true && expression2 !== true) {
return false;
}
}
16._addOneSecond
문제: 시, 분, 초를 입력받아 1초를 더한 결과값을 특정 형태의 메세지로 리턴해야 합니다.
주의:
- string 타입을 리턴해야 합니다.
- "1초 뒤에 {hour}시 {minute}분 {second}초 입니다" 형식으로 리턴해야 합니다.
function addOneSecond(hour, minute, second) {
if (second === 59){
minute += 1;
second = 0
} else {
second = second + 1;
}
if (minute === 60) {
hour = hour + 1;
minute = 0;
}
if ( hour === 24) {
hour = 0;
}
return '1초 뒤에 '+hour+'시 '+minute+'분 '+second+'초 입니다'
}
function addOneSecond(hour, minute, second) {
if (second === 59) {
minute += 1;
second = 0;
} else {
second += 1;
}
if (minute === 60) {
hour += 1;
minute = 0;
}
if (hour === 24) {
hour = 0;
}
return '1초 뒤에 ' + hour + '시 ' + minute + '분 ' + second + '초 입니다';
}
17._isFalsy
문제: 임의의 값을 입력받아 falsy 값인지 여부를 리턴해야 합니다.
주의:
- boolean 타입을 리턴해야 합니다.
function isFalsy(anything) {
if (Boolean(anything) === false){
return true
} else {
return false
}
}
function isFalsy(anything) {
return !Boolean(anything);
}