function plusOrMinus(score){
const backscore = score %10;
if(backscore <= 2){
return '-'
} else if(backscore >= 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 < 60){
grade = 'F'
}
if (grade !== 'F'){
grade = grade + plusOrMinus(score)
}
return grade
};
if--->아니면 else if 사용
if--->겹치지 않으면 if 사용
2.return을 넣을 곳과 grade= 를 넣을 곳을 헷갈렸다
function isPythagorean(side1, side2, side3) {
const a2= side1 * side1
const b2= side2 **2
const c2= Math.pow(side3,2)
if(a2 === b2 + c2 || b2 === a2+ c2|| c2 === a2+ b2){
return true
}else{
return false
}
}
이문제는 전에도 느꼈는데 방법을 모른다기보다 매번 수도코드를 잘못쓰는 것같다
수도코드를 다른방식으로 쓰는 연습이 필요하다
if(a가 가장 긴 변이라면 ){
a제곱은 b제곱+ c제곱이다
return true}라고 적었는데 이렇게 조건문으로 사용했었다
이 문제는 세 숫자가 피타고라스삼각형을 만족하느냐를 묻는 문제인데 가장 긴 변에대해서 어떠한 조건을 걸라는 말도 없다
function addOneSecond(hour, minute, second) {
if(second + 1 >= 60) {
second = 0
minute = minute + 1
if(minute + 1 >= 60) {
minute = 0
hour = hour + 1
}
if(hour + 1 >= 24) {
hour = 0
}
}
else{
second = second + 1
}
return `1초 뒤에 ${hour}시 ${minute}분 ${second}초 입니다`
}
// 입력받은 시, 분, 초에 1초를 더한 결과값을 반환한다
// 만약 입력받은 초에 1을 더해서 60이상이 되면 초를 0으로 초기화하고 분에 1을 더한다
// 만약 분에 1을 더했을 때 60이상이 되면 분을 0으로 초기화하고 시에 1을 더한다
// 만약 시에 1을 더했을 때 24이상이 되면 시를 0으로 초기화한다
// 그리고 백팁을 사용해서 시, 분, 초를 문제에서 요구하는 특정 문장으로 만들고 반환한다
// 위 조건들중 아무 조건에 해당하지 않으면 초에 1을 더한다
// 그리고 백팁을 사용해서 시, 분, 초를 문제에서 요구하는 특정 문장으로 만들고 반환한다
변수가 여러개라서 멘붕이 온걸까 당황을해서 그럴까
이문제만 보면 수도코드도 쓰기가 어렵다 ㅜㅜ
//second가 60이 넘으면 minute가 1이 더해지고 second는 0이된다
//minute가 60이 넘으면 hour가 1이 더해지고 minute은 0으로 변한다
//hour가 24가되면 0으로 변하고 minute도 second도 0이된다
일단 hour와 minute,second의 조건을 막 적고싶었다
hour는 0보다 크고 24보다 같거나 작아야하며 minute은 60보다 작아야한다는등..
하지만 이건 문제밑에 적혀있기도 하고 true/false를 받아내는 문제가 아니기 때문에 필요없는 조건이다
function findShortestOfThreeWords(word1, word2, word3) {
let shortestWord = word1
if(word1.length > word2.length){
shortestWord = word2
if(word2.length > word3.length){
shortestWord = word3
}
}
else{
if(word1.length > word3.length){
shortestWord = word3
}
}
return shortestWord
}
if{ }안에 또다른 if{ }를 적다니?? 왜지?
지금 우리는 3단어중에서 가장 적은단어수를 뱉는 문자열을 찾는 것이다
어떤 인자가 가장 적은 단어수를 갖고있는지 모르기 때문에 일단 word1을 shortestWord라고 할당을 한다. 그런데 word2가 shortestWord일 수도 있기때문에 word2로 재할당을 시킨다
그런데 word1과 word3을 비교했을 때에 word3이 가장 짧을 수 있기 때문에 word3으로 재할당 시켜준다
if의 중첩에 대해서 구글링을 한 결과 가장 밖에있는 if문을 만족하지 못할 경우에 else부분으로 가는 것이니까 if (word1.length> word2.length)를 만족 못하면 shortestWord는 word1이 되니까 else에서 word1과 word3을 비교하는 것이다