본문 바로가기
Algorithm/JavaScript

[basics] 대문자 찾기

by _sweep 2021. 12. 5.

 

자바스크립트 알고리즘 문제풀이 강의를 듣고 정리한 내용입니다.

 

 

 

 

📋 문제

한 개의 문자열을 입력받아 해당 문자열의 대문자 개수를 출력한다.

 

 

 

👉 입력

길이가 100을 넘지 않는 문자열이 입력된다.

 

 

👈 출력

해당 문자열 속 대문자의 개수를 출력한다.

 

 

💡 사용된 개념

charCodeAt()

주어진 인덱스에 대한 유니코드(UTF-16)를 나타내는 0 ~ 65535의 정수를 반환한다.

str.charCodeAt(index)
  • index : 0 이상 문자열 길이 미만의 정수. 기본값은 0.

 

toUpperCase()

주어진 문자열을 대문자로 변환해 반환한다.

 

 

📝 풀이

 

<script>
    function solution(s) {
        let answer = 0;
        for (const a of s) {
            if (a.charCodeAt() > 64 && a.charCodeAt() < 91) answer++;
        }
        return answer;
    }

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

 

for of 문을 이용해 주어진 문자열의 문자들을 순회한다.

charCodeAt()을 이용해 해당 문자의 유니코드 값을 구한다.

만약 문자의 유니코드값이 65(A) ~ 90(Z) 사이라면 answer에 1을 더해준다.

+) 참고로 소문자는 97(a) ~ 122(z)이다.

 

다른 방법으로는 toUpperCase()를 이용하는 방법이 있다.

 

<script>
    function solution(s) {
        let answer = 0;
        for (const a of s) {
            if (a === a.toUpperCase()) answer++;
        }
        return answer;
    }

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

 

for of 문을 이용해 주어진 문자열의 문자들을 순회하며 해당 문자가 해당 문자를 대문자로 변환한 것과 같을 때 answer에 1을 더해준다.

즉, 해당 문자가 해당 문자를 대문자로 변환한 것과 같다면 해당 문자는 이미 대문자인 것이다.

 

 

 

'Algorithm > JavaScript' 카테고리의 다른 글

[basics] 가장 긴 문자열  (0) 2021.12.06
[basics] 대문자 통일  (0) 2021.12.05
[basics] 문자 찾기  (0) 2021.12.05
[basics] A를 #으로  (0) 2021.12.05
[basics] 일곱 난쟁이  (0) 2021.12.05

댓글