문자열 다루기 기본

NJW·2021년 8월 18일
0

코테

목록 보기
59/170

들어가는 말

문자열 크기가 4혹은 6이고 숫자만 있으면 true, 그 외에는 false를 출력하는 문제이다. 아까의 김씨 찾기 문제와 같이 문제 이해가 정확하게 되지 않아 혼란스러웠다.

코드 설명

먼저 크기가 4혹은 6이 아니면 실패로 한 뒤, 바로 정답을 리턴해준다. 내가 헷갈린 게 이 if 부분. 사이즈가 4도 아니'고(&&)' 6도 아니면, 실패를 해주어야 한다. 사이즈가 4가 아니'거나(||)' 6이 아니면, 실패가 아니라. 솔직히 아직도 둘 차이를 모르겠다. 정말 모르겠...
그 다음에는 문자열에 하나라도 숫자 아닌 값이 있다면, answer을 false로 바꾸고 바로 break하는 것이다. !를 사용해서 숫자가 아니면을 표현해주었다. 48 ~ 57은 아스키 코드로 0 ~ 9를 의미한다. 아니면, '0' ~ '9'를 써줘도 된다.
문자열을 많이 안 다뤄서 그런지 아스키 코드가 나오면 여전히 복잡하다...

코드

bool solution(string s) {
    bool answer = true;
    
    
    for(int i = 0; i < s.size(); i++){
        if(s.size() != 4 && s.size() != 6){
            answer = false;
            break;
        }
        
        if(!(s[i] >= '0' && s[i] <= '9')){
            answer = false;
            break;
        }
    }
   
    return answer;
}
profile
https://jiwonna52.tistory.com/

0개의 댓글