문제 - 문자열 다루기 기본
계속 통과를 못해서 며칠 동안 미뤄뒀던 문제를 오늘 다시 풀어보았다.
분명 다 맞는 것 같은데 왜 계속 4개의 실패 케이스가 나오는지 도통 이해가 되지 않았다.
그러던 중 6글자의 숫자로 이루어진 true가 나와야 하는 테스트 케이스가 없는 걸 확인하고 추가했더니 이게 계속 false로 나오면서 통과가 되지 않았다.
로직은 맞는데... 하면서 계속 보다가... 오타를 발견했다 ㅋㅋㅋ 하... ㅋㅋ
기존 코드
function solution(s) {
const str = s.replace(/ /g, '');
let answer = false;
if(str.length == 4 || str.legth == 6){
for(let i = 0; i < str.length; i++){
if(Number.isNaN(Number(str[i]))){
answer = false;
break;
}else{
answer = true;
}
}
}
return answer;
}
6글자 length 체크하는 부분에 오타가 있었던 것이다...
이 오타 때문에.... 이 문제를... 며칠 내내 풀었다..
수정 코드
function solution(s) {
const str = s.replace(/ /g, '');
let answer = false;
if(str.length == 4 || str.length == 6){
for(let i = 0; i < str.length; i++){
if(Number.isNaN(Number(str[i]))){
answer = false;
break; //숫자가 아니면 break로 반복문 종료
}else{
answer = true;
}
}
}
return answer;
}
느낀 점
테스트 케이스를 더 다양하게 뒀다면 미리 발견했을 수 있었을 텐데 몇 개 두지 않고 하다 보니 오타 발견도 오래 걸렸던 것 같다. 나 왜 이것도 못 풀지.. 하며 자책했는데... ㅋㅋ
다양한 테스트 케이스, 오타... 이번에 큰 걸 얻은 것 같다.
'TIL' 카테고리의 다른 글
Zustand (2) | 2024.03.19 |
---|---|
새로운 팀 프로젝트 시작! (1) | 2024.03.18 |
[typescript] 빌드에 대하여 (0) | 2024.03.07 |
[react] Intersection Observer API 스크롤에 도달했을 때 이미지 로딩하기 lazy load (1) | 2024.02.27 |
supabase database 정책 설정 (0) | 2024.02.23 |