문제 설명
문자열 my_string이 매개변수로 주어질 때, 대문자는 소문자로 소문자는 대문자로 변환한 문자열을 return하도록 solution 함수를 완성해주세요.
입출력 예
나의 풀이
class Solution {
public String solution(String my_string) {
String answer = "";
for(int i = 0; i < my_string.length(); i++){
char tmp = my_string.charAt(i);
if(Character.isUpperCase(tmp) == true){
answer += Character.toLowerCase(tmp);
} else {
answer += Character.toUpperCase(tmp);
}
}
return answer;
}
}
참고 풀이 1 (아스키 코드)
class Solution {
public String solution(String s) {
String answer = "";
for(int i=0;i<s.length();i++){
if(s.charAt(i)>=97 && s.charAt(i)<=122){
answer += (char)(s.charAt(i)-32);
} else if(s.charAt(i)>=65 && s.charAt(i)<=90){
answer += (char)(s.charAt(i)+32);
} else {
answer += s.charAt(i);
}
}
return answer;
}
}
나의 풀이 (.split(), toLowerCase())
function solution(my_string) {
let answer = '';
let c = my_string.split("");
for(let i = 0; i < c.length; i++){
if(c[i].toUpperCase() == c[i]){
answer += c[i].toLowerCase();
} else if(c[i].toLowerCase() == c[i]){
answer += c[i].toUpperCase();
}
}
return answer;
}
참고 풀이 1 (삼항연산자)
function solution(my_string) {
var answer = '';
for (let c of my_string) answer += c === c.toLowerCase() ? c.toUpperCase() : c.toLowerCase();
return answer;
}
참고 풀이 2 (문자열 for of)
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;
}
참고 풀이 3 (.map(), .join())
function solution(my_string) {
return my_string.split('').map(n => n === n.toUpperCase() ? n.toLowerCase() : n.toUpperCase()).join('')
}