2021/12/17) 12. 대문자로 통일

굥굥이·2021년 12월 17일
0
post-thumbnail

1. 문제

<대문자로 통일>
: 대문자와 소문자가 같이 존재하는 문자열을 입력받아 대문자로 모두 통일하여 문자열을 출력하는 프로그램을 작성한다.

2. 해결 방법

  1. 첫 번째 방법은, for..of문으로 x가 소문자이면(toLowerCase() 이용), 대문자(toUpperCase())로 바꿔주면 된다.
  2. 두 번째 방법은, 모든 문자를 아스키코드로 변환시켜서(charCodeAt(), 만약 소문자아스키코드(97~122)이면, -32해서 대문자아스키코드(65~90)으로 바꿔준다.
    그리고 현재 모든 문자들이 아스키코드이기 때문에, String.fromCharCode(num-32)를 이용해서 아스키코드를 문자열로 변환하여 준다.
    참고할 점 ) 왜 -32를 하나요? : 대문자A의 아스키번호 65, 소문자a의 아스키번호 97. 두 값의 차이는 32. 그렇기 때문에 97-32를 해주면, 소문자a가 대문자 A가 됨.

3. 정답

        <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);
                    else answer+=x;
                    //if(x===x.toLowerCase()) answer+=x.toUpperCase();
                    //else answer+=x;
                }
                return answer;
            }
            let str="ItisTimeToStudy";
            console.log(solution(str));
        </script>

4. 내 코드와 비교 그리고 반성

난 if문 없이, 그냥 단어자체를 대문자(toUpperCase())로 바꿨다. 문제가 되려나?
=> 문제되지 않는다고 함~

profile
아자아자 파이띵굥!

0개의 댓글