1-12) 대소문자로 통일

김예지·2021년 8월 25일
0

대문자와 소문자가 같이 존재하는 문자열을 입력받아 대문자로 모두 통일하여 문자열을 출력 하는 프로그램을 작성하세요.
[입력설명]
첫 줄에 문자열이 입력된다. 문자열의 길이는 100을 넘지 않습니다.
[출력설명]
첫 줄에 대문자로 통일된 문자열이 출력된다.

입력예제 1

ItisTimeToStudy

출력예제 1

ITISTIMETOSTUDY


문제 풀이

코드1(권장)

s.toUpperCase()내장함수를 사용한다. 사실 대문자나 소문자로 모두 통일해서 변경하는 경우, s.toUpperCase(), s.toLowerCase()를 사용하는 것이 가장 권장된다. (간단하기 때문!)

<html>
    <head>
        <meta charset="UTF-8">
        <title>출력결과</title>
    </head>
    <body>
        <script>
            function solution(s){         
                let answer=s.toUpperCase()
                return answer;
            }

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

코드2 (코드2부터는 원리 이해를 위한 코드!)

<html>
    <head>
        <meta charset="UTF-8">
        <title>출력결과</title>
    </head>
    <body>
        <script>
            function solution(s){         
                let answer="";
                for(let x of s){
                    if(x===x.toLowerCase()) answer+=x.toUpperCase();
                    else answer+=x;
                }
                return answer;
            }

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

코드3

아스키코드를 사용해서 변환한다.
x.charCodeAt()을 사용해서 s의 원소인 x의 아스키코드를 알아내고, String.fromCharCode(num-32)를 통해 (num-32) 아스키코드를 문자(String)으로 변환한다. 즉, num이 소문자일 때 num-32를 통해 대문자로 변환할 수 있다. (앞 강의 노트 참고)

<html>
    <head>
        <meta charset="UTF-8">
        <title>출력결과</title>
    </head>
    <body>
        <script>
            function solution(s){         
                let answer="";
                for(let x of s){
                    let num=x.charCodeAt();
                    if(num>=97 && num<=122) answer+=String.fromCharCode(num-32); //소문자아스키-32=대문자(대문자아스키+32=소문자)
                    else answer+=x;
                }
                return answer;
            }

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

결과

ITISTIMETOSTUDY

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

2개의 댓글

comment-user-thumbnail
2021년 9월 11일

9/10

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

11/23

  • 아스키코드 표 이해
답글 달기