인프런 커뮤니티 질문&답변

furler711님의 프로필 이미지
furler711

작성한 질문수

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

12. 대문자로 통일

이렇게 풀면 제대로 동작하지 않는 이유가 궁금합니다

작성

·

213

1

function solution(str) {
    let answer = str;

    for(let x of answer) {
        if(x == x.toLowerCase())
            x = x.toUpperCase();
    }
    return answer;
}
let str = "ItisTimeToStudy";
console.log(solution(str));

answer = str로 두고

str의 x가 x == lowercase일때 x = uppercase로 변환한다는 생각으로 했는데 변환되지않고 입력된 str 그대로 출력됩니다. 

어떤부분에서 오류인지 궁금합니다

답변 1

4

x 가 계속 새로운 값으로 덮어씌어지고 있습니다. 
소문자인 x를 찾아서 대문자로 변환한 뒤에는, 변환된 값을 다른변수에 할당해 주셔야죠
계속 변환되고 덮어씌어지기만 하니까 return answer 해도 그냥 원래 str이 반환되겠죠

예를들어 이렇게하면 되는듯요 

function solution(str) {
let answer = "";
for (let x of str) {
if (x == x.toLowerCase())
answer += x.toUpperCase();

}

return answer;
}
let str = "ItisTimeToStudy";
console.log(solution(str));
furler711님의 프로필 이미지
furler711

작성한 질문수

질문하기