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으로. 그리고 한 줄로(가독성은 좋지 않다).