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


문제 설명

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


제한사항

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

입출력 예

my_stringresult
“cccCCC”“CCCccc”
“abCdEfghIJ”“ABcDeFGHij”

입출력 예 설명

입출력 예 #1

  • 소문자는 대문자로 대문자는 소문자로 바꾼 “CCCccc”를 return합니다.

입출력 예 #2

  • 소문자는 대문자로 대문자는 소문자로 바꾼 “ABcDeFGHij”를 return합니다.

나의 풀이

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

나의 두번째 풀이(Code Refactoring)

function solution(my_string) {
  return [...my_string]
    .map((v, i) => (v === v.toUpperCase() ? v.toLowerCase() : v.toUpperCase()))
    .join("");
}
// 요소가 대문자인걸 판별 한후 true이면 소문자로 변환 시키고 그렇지 않은건 대문자로 변환

참고 할 만한 다른 사람의 코드

function solution(my_string) {
  const result = (char) =>
    /[a-z]/.test(char) ? char.toUpperCase() : char.toLowerCase();
  return [...my_string].map(result).join("");
}

//정규식으로 찾기