2021/12/17) 11. 대문자 찾기

굥굥이·2021년 12월 17일
0
post-thumbnail

1. 문제

<대문자 찾기>
: 한 개의 문자열을 입력받아 해당 문자열에 알파벳 대문자가 몇 개 있는지 알아내는 프로그램을 작성한다.

2. 해결 방법

  1. 첫 번째 방법은, toUpperCase()을 이용해 대문자이면, answer에 1씩 더해준다!
    ex ) x===toUpperCase() 이런 식으로 코드를 짜면 되는데,
    만약 x가 대문자라면 true가 나와서 if문으로 갈 것이다.
    유의할 점 ) x.toUpperCase() 한다고 해서, x의 값이 변하는 건 아님. 만약 x가 a인 상태에서 a.toUpperCase()를 해도, x의 값은 그대로 x(소문자)이다. 그렇기 때문에 x === x.toUpperCase()해서 비교할 수 있는거다.
  2. 두 번째 방법은, charCodeAt()를 이용해 대소문자들을 다 아스키코드로 변경하고, 아스키번호(대문자:65-90/소문자:97-122)를 이용하여 대문자이면 answer에 1씩 더해준다.

3. 정답

        <script>
  	    //첫 번째 방법, 두 번째 방법
            function solution(s){   
                let answer=0;
                for(let x of s){
                    //let num=x.charCodeAt();
                    //if(num>=65 && num<=90) answer++;
                    if(x===x.toUpperCase()) answer++; 
                }
                return answer;
            }
            let str="KoreaTimeGood";
            console.log(solution(str));
        </script>
    <script>
        //내 코드
        function solution(s){         
        let answer = s;
        answer = answer.split(/[A-Z]/g).length;
        answer = answer - 1; 
        return answer;
        }
        let str="KoreaTimeGood";
        console.log(solution(str));
    </script>

4. 내 코드와 비교 그리고 반성

이번엔 반성할 거 없다.
나는 코드를 split을 이용해서 짰다. split인자값으로
/[A-Z]/g를 주었고, '대문자로 인해 달라진 덩어리개수(length)-1'을 하여 대문자 수를 구했다.

profile
아자아자 파이띵굥!

0개의 댓글