ALGORITHM/프로그래머스

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

HSYOO 2023. 2. 7. 12:43

문제 설명

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

제한 사항

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

입출력 예

my_string result
"cccCCC" "CCCccc"
"abCdEfghIJ" "ABcDeFGHij"

입출력 예 설명

입출력 예 #1

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

입출력 예 #2

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

풀이

function solution(my_string) {
    const lowerString = my_string.toLowerCase()
    return lowerString.split('').map((curr, i) => {
        if (curr === [...my_string][i]) return curr.toUpperCase()
        return curr
    }).join('')
}

내 생각 & 아무 말

받아온 my_string을 모두 소문자로 변환하고 배열로 만들어 변수로 따로 저장해둔다. (또는 그냥 사용할 때 split 한다.)

my_string 원본 값도 배열로 만든다.

변환하여 저장한 배열 값과 my_string 원본 값과 같은 위치에 문자가 같은지 체크하고, 같다면 원래 소문자였기 때문에 대문자로 변환하여 반환하고 다르다면 원래 대문자였기 때문에 바로 반환한다.

 

뭔가 더 쉽게 할 수 있을 것 같은데..

 

 

피드백은 언제나 감사합니다.