🔦 문제 링크
문자열
이 특정 범위를 순환문자열
과문자
의 변환이 중요!
def solution(s, n):
answer = []
print(ord('a'),ord('A'),ord('z'),ord('Z'))
for i in s:
print(i)
print( ord(i) )
if ord('a') <= ord(i) <= ord('z'):
print("aa"+ chr( (ord(i)+n-ord('a'))%26 + ord('a') ) )
answer += chr( (ord(i)+n-ord('a'))%26 + ord('a') )
elif ord('A') <= ord(i) <= ord('Z'):
print("bb"+ chr( (ord(i)+n-ord('A'))%26 + ord('A') ) )
answer += chr( (ord(i)+n-ord('A'))%26 + ord('A') )
else :
answer += ' '
return ''.join(answer)
def solution(s, n):
# string -> 즉 s 에 할당은 불가능하다.
answer = list(s)
for i in range(len(s)):
if answer[i].isupper():
answer[i] = chr( (ord(answer[i])+n-ord('A'))%26 + ord('A'))
elif answer[i].islower():
answer[i] = chr( (ord(answer[i])+n-ord('a'))%26 + ord('a'))
print(answer)
return ''.join(answer)
#include <string>
#include <vector>
#include <iostream>
using namespace std;
string solution(string s, int n) {
string answer = "";
char start=' ';
for(int i=0; i<s.length(); i++)
{
//char ch = s[i];
if('A' <= s[i] && s[i] <= 'Z')
start = 'A';
else if('a' <= s[i] && s[i] <= 'z')
start = 'a';
if(s[i]!=' ')
s[i] = (s[i]+n-start)%26 + start;
cout << s[i] << "\n";
}
return s;
}