All Articles

Leetcode709. To Lower Case

문제 및 답안

/**
 * @param {string} str
 * @return {string}
 */
var toLowerCase = function(str) {
    
    let ASCII = []
    let output = [];
    
    //문자열을 아스키코드로 변환, 대문자에 해당하는 아스키코드 값을 가졌다면 소문자 값으로 변환
    for (let n of str) {
        if (n.charCodeAt() > 64 && n.charCodeAt() < 91) {
            ASCII.push(n.charCodeAt() + 32);
        } else {
            ASCII.push(n.charCodeAt());
        };
    }
    
    // 아스키코드를 문자열로 변환하고 아웃풋 배열에 추가
    for (let s of ASCII) {
        let val = String.fromCharCode(s);
        output.push(val);   
    }
    
    // join() 메서드 사용하여 배열을 문자열로 바꾼 후 결과값 출력
    return output.join("");
};

풀이 과정

  • toLowerCase() 메서드로 간단하게 풀 수도 있지만, 아스키코드를 이용하여 풀어보았다.

  • ASCII 코드 screensh

Q) 문자열에 있는 대문자를 소문자로 바꿔서 출력하기

  1. 문자열을 아스키코드로 변환시킨다. (대문자와 소문자 아스키코드 값은 32가 차이난다. 예를들어 대문자 A의 값은 65이고, 소문자 a의 값은 65에 32를 더한 97이다.)

  2. 조건문을 통해 아스키코드 값이 대문자의 범위 내에 속하면 32를 더해줘서 소문자로 바꿔준다.

  3. 아스키코드로 변환된 값을 배열에 저장한다.

  4. 배열에 저장된 값을 문자열로 변환한다.

  5. 문자열로 변환된 값을 출력한다.