반응형
문제를 풀다가 다른 접근방식을 정리해둘 필요성을 느껴 포스팅 합니다.
문제 설명
대문자 => 소문자, 소문자 => 대문자
나의 풀이
간단하게 for문과 if문을 이용해서 두 값이 일치하는지 확인 후에 변경하였다.
빈 배열에 담아뒀다가 마지막에 join을하여 다시 문자열로 결합시켜준다.
function solution(my_string) {
var answer = [];
for(let i=0; i < my_string.length; i++){
if(my_string[i] === my_string[i].toUpperCase()){
answer.push(my_string[i].toLowerCase());
}
else{
answer.push(my_string[i].toUpperCase());
}
}
return answer.join('');
}
다른사람의 풀이
똑같이 for문을 썼지만, 더 간단하게 정리되었다.
문자열끼리 더해졌기때문에, join을 사용할 필요가 없다.
function solution(my_string) {
let answer = ''
for(let i of my_string){
if(i === i.toUpperCase()){
answer += i.toLowerCase();
}else{
answer += i.toUpperCase();
}
}
return answer;
}
아래는 Reduce를 활용하였는데, 한번쯤 봐두면 좋을것같아 남겨놓는다.
function solution(my_string) {
return my_string.split('').reduce((a, b) => {
if(b === b.toLowerCase()) return a + b.toUpperCase();
else return a + b.toLowerCase();
}, '')
}
반응형
'Javascript > 코딩테스트-연습' 카테고리의 다른 글
[JavaScript] 진료순서 정하기 - 프로그래머스 (26) | 2024.03.25 |
---|---|
[JavaScript] 외계행성의 나이 - 프로그래머스 (25) | 2024.03.23 |
[JavaScript] 자릿수 구하기 - 프로그래머스 (22) | 2024.03.21 |
[JavaScript] 세균 증식 - 프로그래머스 (23) | 2024.03.21 |
[JavaScript] 영어가 싫어요 - 프로그래머스 (27) | 2024.03.20 |