• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

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

21.06.06 17:36 작성 조회수 134

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

jjang9님의 프로필

jjang9

2021.06.06

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));