본문 바로가기
Javascript/코딩테스트-연습

[JavaScript] 대문자와 소문자 - 프로그래머스

by BeomBe 2024. 3. 22.
반응형

문제를 풀다가 다른 접근방식을 정리해둘 필요성을 느껴 포스팅 합니다.

 

문제 설명

대문자 => 소문자, 소문자 => 대문자

 

 

나의 풀이

간단하게 for문과 if문을 이용해서 두 값이 일치하는지 확인 후에 변경하였다.

빈 배열에 담아뒀다가 마지막에 join을하여 다시 문자열로 결합시켜준다.

function solution(my_string) {
    var answer = [];

    for(let i=0; i < my_string.length; i++){
        if(my_string[i] === my_string[i].toUpperCase()){
            answer.push(my_string[i].toLowerCase());
        }
        else{
            answer.push(my_string[i].toUpperCase());
        }
    }

    return answer.join('');
}

 

다른사람의 풀이

똑같이 for문을 썼지만, 더 간단하게 정리되었다.

문자열끼리 더해졌기때문에, join을 사용할 필요가 없다.

function solution(my_string) {
    let answer = ''
    for(let i of my_string){
        if(i === i.toUpperCase()){
            answer += i.toLowerCase();
        }else{
            answer += i.toUpperCase();
        }
    }
    return answer;
}

 

 

아래는 Reduce를 활용하였는데, 한번쯤 봐두면 좋을것같아 남겨놓는다.

function solution(my_string) {
    return my_string.split('').reduce((a, b) => {
        if(b === b.toLowerCase()) return a + b.toUpperCase();
        else return a + b.toLowerCase();
    }, '')
}
반응형