728x90
문제설명
입력 & 출력
나의 풀이
먼저 풀이 설명에 앞서 실수했던 점을 짚어보고 가려고 합니다.
문제 설명을 보면 P/F 과목의 경우 등급이 P인 과목은 계산에서 제외해야 합니다. 그러나 처음 풀이에서는 전공과목별 합에서는 제외했지만 학점의 합에서는 제외하지 않았기 때문에 틀렸었습니다.
이 점을 주의하고 코드를 짜면 어렵지 않게 짜실 수 있습니다.
이제 풀이를 설명해보자면 3, 4번째 줄에서 전공과목별(학점 * 과목 평점) 합과 학점의 총합을 선언해줍니다. 그리고 문자열 key로 접근이 가능하도록 객체로 과목평점표를 초기화해 줍니다.
7번째 줄에서 split() 메서드를 사용하여 공백을 기준으로 나눠준값을 str에 저장해 줍니다.
for of문을 통해 입력받은 수강한 전공과목의 과목명, 학점, 등급을 순회하는데 먼저 total에 학점(str [1])을 누적해서 더해줍니다. 이때 주의해야 할 점은 앞서 말했듯이 만약에 등급이 P라면 계산에서 제외해야 하기 때문에 등급이 P인 학점을 빼줘야 합니다.
마지막으로 평점을 반환하여 마무리해 줬습니다.
✅ toFixed(n)
toFixed() 함수는 소수점 자릿수를 자를 수 있는 함수입니다.
• Number 객체의 메서드로 인수로 전달된 소수 자릿수로 반올림된 값을 문자열로 리턴합니다.
• 소수점 뒤에 나타날 자릿수는 0 ~ 100 이하의 값을 사용합니다.
• 값을 넣지 않으면 0
refactoring ✅
"나의 풀이"와 비슷한 구조로 풀었지만 크게 다른 점은 2가지 있습니다.
- 첫 번째 입력값을 받을 때 map()을 사용하여 받을 때부터 공백을 기준으로 split 해서 받아줬습니다.
- 두 번째 구조분해 할당을 사용하여 "나의 풀이"와 다르게 간결한 표현을 할 수 있습니다.
참고 ❗
'Coding Test > 백준' 카테고리의 다른 글
[백준] 최댓값 (node.js, 2566번) (0) | 2024.04.11 |
---|---|
[백준] 행렬 덧셈 (node.js, 2738번) (0) | 2024.04.09 |
[백준] 그룹 단어 체커 (node.js , 1316번) (0) | 2024.04.07 |
[백준] 크로아티아 알파벳 (node.js, 2941번) (0) | 2024.04.06 |
[백준] 단어 공부 (node.js, 1157번) (1) | 2024.04.05 |