본문 바로가기
TIL

[프로그래머스] 문자열 다루기 기본 / 오타 때문에... 오래걸린 코딩 테스트

by dev__log 2024. 3. 13.

문제 - 문자열 다루기 기본

계속 통과를 못해서 며칠 동안 미뤄뒀던 문제를 오늘 다시 풀어보았다.

분명 다 맞는 것 같은데 왜 계속 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;
}

 

 

느낀 점

테스트 케이스를 더 다양하게 뒀다면 미리 발견했을 수 있었을 텐데 몇 개 두지 않고 하다 보니 오타 발견도 오래 걸렸던 것 같다. 나 왜 이것도 못 풀지.. 하며 자책했는데... ㅋㅋ

다양한 테스트 케이스, 오타... 이번에 큰 걸 얻은 것 같다.