문제 설명
문자열 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 원본 값과 같은 위치에 문자가 같은지 체크하고, 같다면 원래 소문자였기 때문에 대문자로 변환하여 반환하고 다르다면 원래 대문자였기 때문에 바로 반환한다.
뭔가 더 쉽게 할 수 있을 것 같은데..
피드백은 언제나 감사합니다.