자바스크립트 알고리즘 문제풀이 강의를 듣고 정리한 내용입니다.
📋 문제
대문자와 소문자가 같이 존재하는 문자열을 입력받아 대문자는 소문자로, 소문자는 대문자로 변환하여 바뀐 문자열을 출력한다.
👉 입력
길이가 100을 넘지 않는 문자열이 입력된다.
👈 출력
대소문자가 서로 바뀐 문자열을 출력한다.
📝 풀이
String.toUpperCase() / String.toLowerCase() ver.
<script>
function solution(s) {
let answer = "";
for (const a of s) {
if (a === a.toUpperCase()) answer += a.toLowerCase();
else answer += a.toUpperCase();
}
return answer;
}
let str = "StuDY";
console.log(solution(str));
</script>
주어진 문자열의 문자들을 순회한다.
만약 해당 문자가 대문자라면 toLowerCase()를 이용해 소문자로 변환해 빈 문자열인 answer에 추가해나간다.
조건에 걸리지 않는다면 해당 문자는 소문자이므로 toUpperCase()를 이용해 대문자로 변환해 answer에 추가한다.
String.charCodeAt() / String.fromCharCode() ver.
<script>
function solution(s) {
let answer = "";
for (const a of s) {
let num = a.charCodeAt();
if (num >= 65 && num <= 90) answer += String.fromCharCode(num + 32);
else answer += String.fromCharCode(num - 32);
}
return answer;
}
let str = "StuDY";
console.log(solution(str));
</script>
주어진 문자열의 문자들을 순회한다.
num에 해당 문자의 유니코드 값을 저장한다.
num이 65이상 90 이하의 수라면(= 대문자) num에 32를 더한 값을 문자로 변환시켜 빈 문자열인 answer에 추가해나간다.
조건에 걸리지 않는다면(= 소문자) num에서 32를 뺀 값을 문자로 변환시켜 answer에 추가한다.
'Algorithm > JavaScript' 카테고리의 다른 글
[basics] 중복 문자 제거 (0) | 2021.12.06 |
---|---|
[basics] 가운데 문자 출력 (0) | 2021.12.06 |
[basics] 가장 긴 문자열 (0) | 2021.12.06 |
[basics] 대문자 통일 (0) | 2021.12.05 |
[basics] 대문자 찾기 (0) | 2021.12.05 |
댓글