1-11) 대문자 찾기

김예지·2021년 8월 25일
0

문제

한 개의 문자열을 입력받아 해당 문자열에 알파벳 대문자가 몇 개 있는지 알아내는 프로그램 을 작성하세요.
[입력설명]
첫 줄에 문자열이 입력된다. 문자열의 길이는 100을 넘지 않습니다.
[출력설명]
첫 줄에 대문자의 개수를 출력한다.

입력예제 1

KoreaTimeGood

출력예제 1

3


문제 풀이

코드1(권장)

  • x.toUpperCase(): x 문자열을 대문자로 변환
  • x.toLowerCase(): x 문자열을 소문자로 변환
  • x="korea"로 가정하자. console.log(x.toUpperCase(), x)를 출력해보면, KOREA, korea가 나온다. 즉, x는 변하지 않는다. x의 원본까지 대문자로 변경하고 싶다면, x=x.toUpperCase()과 같이 작성하면 된다.
<html>
    <head>
        <meta charset="UTF-8">
        <title>출력결과</title>
    </head>
    <body>
        <script>
            function solution(s){         
                let answer=0; //카운팅
                for(let x of s){
                    if(x===x.toUpperCase()) answer++; 
                  //console.log(x.toUpperCase(), x) 원리 확인 
                }

                return answer;
            }

            let str="KoreaTimeGood";
            console.log(solution(str));
        </script>
    </body>
</html>

코드2

  • (1)문자열을 아스키코드로 변환하고, (2)대문자인지 판단한다.
  • x.charCodeAt(): x의 아스키코드를 리턴한다.
    대문자의 아스키코드: 65~90(26개)
    소문자의 아스키코드: 97~122(26개)
    이다. 이들사이의 차이는 32이다. 만약, 대문자->소문자로 변환하고 싶다면 +32를하면 된다. 반대로 소문자->대문자로 변환하고 싶다면 -32를 하면 된다.
<html>
    <head>
        <meta charset="UTF-8">
        <title>출력결과</title>
    </head>
    <body>
        <script>
            function solution(s){         
                let answer=0; //카운팅
                for(let x of s){
                    let num=x.charCodeAt(); 
                    if(num>=65 && num<=90) answer++;
                    //console.log(num) 아스키 확인
                }

                return answer;
            }

            let str="KoreaTimeGood";
            console.log(solution(str));
        </script>
    </body>
</html>

결과

3

profile
내가 짱이다 😎 매일 조금씩 성장하기🌱

2개의 댓글

comment-user-thumbnail
2021년 9월 11일

9/10

답글 달기
comment-user-thumbnail
2022년 11월 23일

11/23

  • 정규표현식 사용
function solution(str) {
  return str.match(/[A-Z]/g).length; // [ 'K', 'T', 'G' ]
}

solution('KoreaTimeGood');
  • 아스키코드 활용

  • toUpperCase() 활용

답글 달기