본문 바로가기

알고리즘

JS | 대문자 찾기

❓ 한 개의 문자열을 입력받아 해당 문자열에 알파벳 대문자가 몇 개 있는지

알아내는 식을 작성하시오.

 

        function solution(s) {
            let answer=0;
            for(let x of s){
                if(x===x.toUpperCase(), x)
            }
            return answer - 1;
        }

        let str = "KoreaTimeGood";
        console.log(solution(str));

먼저 가장 기본적인 방법으로하게되면

우선 str에 문자열을 작성하고 그것을 s로 넘겨준다.

갯수를 알아내는 것이기때문에 answer은 0으로 초기화해준다.

 

그리고 for문을 사용하여

if문을 사용할건데

여기에서 x가 toUpperCase면 참으로 해준다.

 

toUpperCase는 대문자로 변환해주는것인데

x자체의 값을 변화시키지는 않는다.

*대문자로 리턴받는 것 뿐이지 x자체를 바꾸지는 않는다.

 

        function solution(s) {
            let answer=0;
            for(let x of s){
                console.log(x.toUpperCase(), x)
            }
            return answer;
        }

        let str = "KoreaTimeGood";
        console.log(solution(str));

 

위에 식을 콘솔로그로 나타내면

이렇게 나온다.

앞에는 대문자로 변환한것, 뒤에는 원래 x.

 

        function solution(s) {
            let answer=0;
            for(let x of s){
                if(x===x.toUpperCase()) answer++;
            }
            return answer;
        }

        let str = "KoreaTimeGood";
        console.log(solution(str));

그래서 위 식을 사용해서

if문으로 x가 x.toUpperCase와 같다면

answer를 1 증가해주는 식을 작성한다.

 

그럼 이렇게 3이 출력된다.

 

 

또 다른 방법으로는,

아스킷넘버로 출력할 수 있는 방법이 있다.

 

        function solution(s) {
            let answer=0;
            for(let x of s){
                let num=x.charCodeAt();
                console.log(num);
            }
            return answer;
        }

        let str = "KoreaTimeGood";
        console.log(solution(str));

이렇게 charCodeAt를 사용하면 아스킷 넘버가 출력이 된다.

 

아스킷넘버 출력

 

 

여기서 아스킷넘버는 외우는게 좋은데,

대문자는 65~90번까지이고

소문자는 97~122번까지이다.

 

        function solution(s) {
            let answer=0;
            for(let x of s){
                let num=x.charCodeAt();
                if(num>=65 && num<=90) answer++;
            }
            return answer;
        }

        let str = "KoreaTimeGood";
        console.log(solution(str));

아스킷 넘버를 사용해서 if문을 작성하면

대문자만 카운팅하는 식을 작성할 수 있다.

 

아스킷넘버로 출력한 화면

 

 

 

'알고리즘' 카테고리의 다른 글

JS | 대문자로 통일 하기  (0) 2021.09.15
JS | 문자 찾기  (0) 2021.09.02
JS | A를 #으로 바꾸기  (0) 2021.08.31
JS | 일곱 난쟁이 찾아내기  (0) 2021.08.30
JS | 10부제 위반 차량 출력하기  (0) 2021.08.23