점수를 입력받아 점수에 해당하는 등급을 리턴해야 합니다.
출력
string 타입을 리턴해야 합니다.
각 등급의 최저 점수는 아래와 같습니다. ('F'의 경우 최대 점수를 표기)
90 이상 --> 'A'
80 이상 --> 'B'
70 이상 --> 'C'
60 이상 --> 'D'
60 미만 --> 'F'
주의사항
만약 주어진 점수가 100을 초과하거나 0 미만인 경우, 문자열 'INVALID SCORE'를 리턴해야 합니다.
각 등급의 최고 점수보다 7점 이하인 경우, 등급과 함께 '-'를 리턴해야 합니다. (단, 93점의 경우에는 A를 리턴해야 합니다.)
각 등급의 최저 점수보다 8점 이상인 경우, 등급과 함께 '+'를 리턴해야 합니다.
F+ 와 F- 는 존재하지 않습니다.
function convertScoreToGradeWithPlusAndMinus(score) {
// TODO: 여기에 코드를 작성합니다.
// 의사코드
//1. score가 100을 초과하거나 0 미만인 경우, 문자열 'INVALID SCORE'를 리턴
//2. 그렇지 않고, 만약 score가 90이상이면 'A' 리턴.
//**최고 점수**보다 7점 이하인 경우, 등급과 함께 '-'를 리턴, 최저 점수보다 8점 이상인 경우, 등급과 함께 '+'를 리턴
//90점은 최고점수보다 6점 이하인 경우.
// 생략
if(score > 100 || score < 0){
return 'INVALID SCORE'
}
else if (score >= 90){
if(score <= 100 - 6){
return 'A-'
}
else if(score >= 90 + 8){
return 'A+'
}else {
return 'A'
}
}
else if (score >= 80){
if(score <= 90 - 7){
return 'B-'
}
else if(score >= 80 + 8){
return 'B+'
}else {
return 'B'
}
}
else if (score >= 70){
if(score <= 80 - 7){
return 'C-'
}
else if(score >= 70 + 8){
return 'C+'
}else {
return 'C'
}
}
else if (score >= 60){
if(score <= 70 - 7){
return 'D-'
}
else if(score >= 60 + 8){
return 'D+'
}else {
return 'D'
}
}
else {
return 'F'
}
}
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;
}
난 -와 + 기호를 아예 붙여서 출력해 줬는데 Reference 에서는 부호를 리턴하는 또 다른 함수를 작성해 줬다. 새로운 방법을 알게되서 좋다!
시, 분, 초를 입력받아 1초를 더한 결과값을 특정 형태의 메시지로 리턴해야 합니다.
function addOneSecond(hour, minute, second) {
// TODO: 여기에 코드를 작성합니다.
// 의사코드
//1. 만약 second가 59라면 minute에 1을 더해주고 second는 0이 된다.
//2. 이때, minute가 59라면 hour에 1을 더해주고 minite은 0이 된다.
//3. 이때, hour가 23이라면 은 0이 된다.
//3. 최종 문장 리턴한다. (백틱 사용)
if(second === 59){
//만약 분이 59분일 경우
if(minute === 59){
minute = 0;
second = 0;
//분이 59분이고 hour도 23시일 경우
if(hour === 23){
hour = 0;
return `1초 뒤에 ${hour}시 ${minute}분 ${second}초 입니다`
}
else {
//hour은 23시가 아닐 경우
hour += 1;
return `1초 뒤에 ${hour}시 ${minute}분 ${second}초 입니다`
}
}
else{
//second가 59초인데 minute은 59분이 아닐 경우
second = 0;
minute += 1;
return `1초 뒤에 ${hour}시 ${minute}분 ${second}초 입니다`
}
}
else {
//second가 59초가 아닐 경우
second += 1;
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 + '초 입니다';
}
반복적으로 출력되는 문장은 한 줄만 적도록 해 보자!