https://school.programmers.co.kr/learn/courses/30/lessons/12926

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


 

- Java

class Solution {
    public String solution(String s, int n) {
        String[] L = {"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P",
                      "Q","R","S","T","U","V","W","X","Y","Z"};
        String[] S = {"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p",
                     "q","r","s","t","u","v","w","x","y","z"};
        StringBuilder sb = new StringBuilder();
        for (int i=0;i<s.length();i++){
            if(s.charAt(i)==' ')
                sb.append(' ');
            else if (s.charAt(i)>='a'&&s.charAt(i)<='z'){
                int a = (int)(s.charAt(i)-'a')+n;
                sb.append(S[a%26]);
                }
            else{
                int a = (int)(s.charAt(i)-'A')+n;
                sb.append(L[a%26]);
            }
        }
        
        return sb.toString();
    }
}

 

- Ruby

"a".ord -> 97

97.chr -> 'a'

def solution(s, n)
    answer = ''
    for i in 0..(s.length-1)
        if s[i].ord>=97 and s[i].ord<=122
            a = (s[i].ord-97+n)%26.to_i+97
            answer.concat(a.chr)
        elsif s[i].ord>=65 and s[i].ord<=90
            a = (s[i].ord-65+n)%26.to_i+65
            answer.concat(a.chr)
        else
            answer.concat(' ')
        end
    end
    return answer
end

+ Recent posts