대문자와 소문자

반즈·2023년 12월 4일

프로그래머스 입문

목록 보기
27/51

문제 설명

문자열 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('')
}
profile
나를 채우다

0개의 댓글