JavaScript/Algorithm

programmers 대문자와 소문자

code10 2023. 3. 9. 22:08

대문자와 소문자

(문제)

문자열 my_string이 매개변수로 주어질 때, 대문자는 소문자로 소문자는 대문자로 변환한 문자열을 return하도록 solution 함수를 완성해주세요.


제한사항
  • 1 ≤ my_string의 길이 ≤ 1,000
  • my_string은 영어 대문자와 소문자로만 구성되어 있습니다.

입출력 예my_stringresult
"cccCCC" "CCCccc"
"abCdEfghIJ" "ABcDeFGHij"



(제출 답)

function solution(my_string) {
    const answer = [];
    for(let value of my_string){
        value === value.toUpperCase() ? answer.push(value.toLowerCase()) : answer.push(value.toUpperCase());
    }
    return answer.join("");
}

풀이 과정

1. 빈 배열 만들기.

2. my_string 한 글자마다 그 글자를 대문자했을 때 같다면, 소문자로 바꿔서 배열에 넣고, 같지 않다면 대문자로 바꿔서 배열에 넣는다.

3. 배열에 담긴 글자를 합친다.

 

 

🤼‍♀️  다른 풀이 1

    var answer = '';
    for (let c of my_string) answer += c === c.toLowerCase() ? c.toUpperCase() : c.toLowerCase();
    return answer;

=> 배열이 아니어도 된다. 문자열에 넣기. join() 과정이 필요 없다.

 

🤼‍♀️  다른 풀이 2

return my_string.split('').map(n => n === n.toUpperCase() ? n.toLowerCase() : n.toUpperCase()).join('')

=> for문이 아닌 map으로. 그리고 한 줄로(가독성은 좋지 않다).