시간이 오래 걸린 이유 + 디버깅의 어려움
콜라 문제는 문제 자체가 어렵거나 하지 않다. 문제를 읽고 손으로 직접 시뮬레이션을 해보면 어떤식으로 구현해야할지 감을 잡을 수 있는 문제였다. 테스트 케이스 역시 무난하게 통과하였다.
function solution(a, b, n) {
let count = 0,
empty = 0;
while (n >= a) {
const recieved = Math.floor(n / a);
count += recieved;
n = recieved + (n % a);
}
return count;
}
그런데... 실제 제출하니 하나를 제외하고는 모든 케이스에서 실패가 떴다. 오잉?? 어디서 도대체 왜?? 나에게 주어진 1시간을 다 사용하고 나서야 힌트를 찾아보았다.
모든 문제는
최대 1시간
의 풀이 시간을 준다. 왜냐하면 실제 코테에서 보통 3~4문제에 3시간정도를 주기 때문이다. 무작정 오래 생각하는게 전부는 아니라는 깨달음(?)으로 내가 설정한 시간이다.
역시 나같은 문제로 질문을 한 사람들이 있었다. 하지만 그 대답이 충격이였다.
b를 사용 안하셨네요! b는 빈병을 a만큼 주고서 받는 콜라의 개수입니다
... 이럴수가... 스스로 창피해지는 순간이였다. 😰
문제를 읽을때는 기억했으나, 정작 구현할때는 이를 잊어버리고 구현하였다. 모든 것은 다 핑계이고 결국 문제를 정확하게 읽지 않았다는 점
. 문제 풀이의 시작은 모두 문제를 읽는 것부터이다.
코드상 딱 한줄만, 아니 b만 넣으면 되었다. 🙃
function solution(a, b, n) {
let count = 0,
empty = 0;
while (n >= a) {
const recieved = Math.floor(n / a)`* b`; // 수정 부분
count += recieved;
n = recieved + (n % a);
}
return count;
}
-
제출시
많은
케이스에서 오류가 난다면 다시 한 번문제로 돌아가자
!! -
사실 vscode에서 구현하는 것이였다면, 이미
b
에 체크가 되었을 것이다,not used
이런 식으로... 새삼vscode를 통한 개발 경험 개선, 생산성 향상
에 감사함을 느끼게 되었다.