본문 바로가기
Algorithm/JavaScript

[basics] 대소문자 변환

by _sweep 2021. 12. 6.

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

 

 

 

 

📋 문제

대문자와 소문자가 같이 존재하는 문자열을 입력받아 대문자는 소문자로, 소문자는 대문자로 변환하여 바뀐 문자열을 출력한다.

 

 

👉 입력

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

 

 

👈 출력

대소문자가 서로 바뀐 문자열을 출력한다.

 

 

📝 풀이

String.toUpperCase() / String.toLowerCase() ver.

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

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

 

주어진 문자열의 문자들을 순회한다.

만약 해당 문자가 대문자라면 toLowerCase()를 이용해 소문자로 변환해 빈 문자열인 answer에 추가해나간다.

조건에 걸리지 않는다면 해당 문자는 소문자이므로 toUpperCase()를 이용해 대문자로 변환해 answer에 추가한다.

 

 

String.charCodeAt() / String.fromCharCode() ver.

<script>
    function solution(s) {
        let answer = "";
        for (const a of s) {
            let num = a.charCodeAt();

            if (num >= 65 && num <= 90) answer += String.fromCharCode(num + 32);
            else answer += String.fromCharCode(num - 32);
        }
        return answer;
    }

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

 

주어진 문자열의 문자들을 순회한다.

num에 해당 문자의 유니코드 값을 저장한다.

num이 65이상 90 이하의 수라면(= 대문자) num에 32를 더한 값을 문자로 변환시켜 빈 문자열인 answer에 추가해나간다.

조건에 걸리지 않는다면(= 소문자) num에서 32를 뺀 값을 문자로 변환시켜 answer에 추가한다.

 

 

 

 

 

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

[basics] 중복 문자 제거  (0) 2021.12.06
[basics] 가운데 문자 출력  (0) 2021.12.06
[basics] 가장 긴 문자열  (0) 2021.12.06
[basics] 대문자 통일  (0) 2021.12.05
[basics] 대문자 찾기  (0) 2021.12.05

댓글