반응형
대문자와 소문자
문제 설명
문자열 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) {
var answer = '';
let arr = [];
for (let i = 0; i < my_string.length; i++) {
if (my_string[i].match(new RegExp(/^[A-Z]/)) === null) arr.push(my_string[i].toUpperCase());
else arr.push(my_string[i].toLowerCase())
}
answer = arr.join("")
return answer;
}
.match() 메서드를 사용해서 대문자인지 소문자인지를 판단했습니다.
위 방법 말고도 아스키코드로 확인을 한다던가, === ( Strict Equal Operator )를 사용하여 my_string[i] === my_string[i].toUpeerCase()같은 방법으로 비교를 할 수도 있습니다.
다른 사람의 풀이
function solution(my_string) {
var answer = '';
for (let c of my_string) answer += c === c.toLowerCase() ? c.toUpperCase() : c.toLowerCase();
return answer;
}
for ... of와 3항 연산자를 사용한 내용인것 같습니다.
function solution(my_string) {
return my_string.split('').map(n => n === n.toUpperCase() ? n.toLowerCase() : n.toUpperCase()).join('')
}
저도 처음에 .map을 사용했었는데, 오류인지 오타인지 계속 실행은 되는데 답이 나오지 않아서 for문으로 바꿔했습니다 ㅠ
반응형
'JavaScript | TypeScript > Javascript 코딩테스트' 카테고리의 다른 글
[ Javascript ] 코딩테스트 1단계 ( 2016년 ) (0) | 2023.03.12 |
---|---|
[ Javascript ] 코딩테스트 1단계 ( 콜라츠 추측 ) (0) | 2023.02.26 |
[ Javascript ] 코딩테스트 1단계 ( 행렬의 덧셈 ) (0) | 2023.02.21 |
[ Javascript ] 코딩테스트 1단계 ( 직사각형 별찍기 ) (0) | 2023.02.12 |
[ Javascript ] 코딩테스트 1단계 ( 예산 ) (0) | 2023.02.10 |