코딩을 배울테야/Pre Course
5일차_20200918
도도 새
2020. 9. 18. 22:19
어제와 똑같이 조건문 강의를 듣고 코플릿을 풀었다. 2시간에 2문제 풀었으니 많은 발전인건가?
function convertScoreToGradeWithPlusAndMinus(score) {
if(score>100||score<0) {
return 'INVALID SCORE'
}
else if(score>=0 && score <60) {
return 'F'
}
else if(score === 100) {
return 'A+'
}
let tensDigit = Math.floor(score / 10);
let unitsDigit = score % 10;
let gradeLetter;
if(tensDigit === 9) {
gradeLetter = 'A'
}
else if(tensDigit === 8) {
gradeLetter = 'B'
}
else if(tensDigit === 7) {
gradeLetter = 'C'
}
else if(tensDigit === 6) {
gradeLetter = 'D'
}
let sign = ''
if (unitsDigit >= 0 && unitsDigit <3) {
sign = '-'
}
else if(unitsDigit > 7 && unitsDigit <= 9) {
sign = '+'
}
return gradeLetter + sign// TODO: 여기에 코드를 작성합니다.
}
오늘의 나의 정답과
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;
}
레퍼런스 정답.. 이 얼마나 간결한고.
클라스의 차이가 느껴지는 코딩이다
이 문제를 스스로 풀어내고 (수업자료 참고하긴 했지만) 잠깐동안 성취감에 찌들었었는데
레퍼런스를 보고 나니 내껀.. 써져 있는 것만 봐도 코찔찔이인 것이 느껴지는 코딩이랄까. 마침표도 맨날 제대로 안 찍네ㅎ
이 문제의 핵심은 제일 앞에 오는 조건이 어떤 것이 되어야 하나? 라고 생각한다.
조금은 짜증나는게 주로 문제의 패턴이
이건 무슨무슨 문제입니다... 어쩌고.. 이건 어떻게.. 다만 이렇게 해야 해요.. 화이팅..
이런 식으로 자객마냥 중요 키워드가 숨어있다.
이 문제 내는 사람들 변태가 분명하다. 저렇게 숨겨 놓고 낄낄 못찾고 머리 싸매겠지 낄낄 하고 있을게 분명하다. 아오
솔직히 아직도 뭐가 뭔지 모르겠는데 줄줄 써내려가고 있는 느낌이 강하다.
내가 쓰고 싶은 명령이 무엇이고 그 명령의 순서를 어떻게 구현해야 충돌 없이 코드가 구현될지 고민하는 것이 필요하다.
제일 사소해 보이는 명령이 제일 앞에 들어가야 하는 경우도 많고
제일 앞에 나와있어야 할 것 같고 5줄은 써야 할 것 같은데 else return false 한줄로 정리되는 친구들도 많고
아직 갈 길이 멀다.
함수 객체에 대한 공부도 시작해야겠다.