https://programmers.co.kr/learn/courses/30/lessons/12926
코딩테스트 연습 - 시저 암호
어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀
programmers.co.kr
class Solution {
public String solution(String s, int n) {
String answer = "";
String [] sp = s.split("");
System.out.println((int)s.charAt(0));
// 65~90 // 97~122
for(int i = 0; i < s.length(); i++)
{
int ss = (int)s.charAt(i);
if(s.charAt(i)==' ')
{
answer+=" ";
}
else if(ss>=65 && ss<=90)
{
if(ss+n>90)
{
ss= ss+n-26;
}
else
{
ss+=n;
}
answer +=(char)ss;
}
else if(ss>=97 && ss<=122)
{
if(ss+n>122)
{
ss= ss+n-26;
}
else
{
ss+=n;
}
answer +=(char)ss;
}
}
return answer;
}
}
문제풀이
z == 90일떄 1만큼옮기면 65로 가야함 결국 90 > 65 차이만큼 빼주면됨
다른사람 코드
n이 위에꺼는 25까지밖에없어서 괜찮지만 n이 50이렇게되면 26빼서는 안됨
% 26으로 나머지 +해주면됨
나였으면 (ch+n) % 26 -26 했을듯 넘어간다는 가정하애?
ch = (char) ((ch - 'a' + n) % 26 + 'a');
'프로그래머스 > 1단계' 카테고리의 다른 글
문자열 내림차순으로 배치하기 (0) | 2021.11.03 |
---|---|
문자열 다루기 기본 (0) | 2021.11.03 |
수박수박수박수박수박수? (0) | 2021.11.03 |
약수의 합 (0) | 2021.11.02 |
이상한 문자 만들기 (0) | 2021.11.02 |