Algorithm/Programers - Java
[프로그래머스] 시저암호 / isLowerCase
StrongMin
2023. 4. 29. 22:04
Level. 1
문제
풀이
class Solution {
public String solution(String s, int n) {
String answer = "";
n = n%26;
for(int i=0; i<s.length(); i++){
char ch = s.charAt(i);
if(Character.isLowerCase(ch)){
ch = (char)(ch+n);
if(!Character.isLowerCase(ch))
ch -= 26;
}
if(Character.isUpperCase(ch)){
ch = (char)(ch+n);
if(!Character.isUpperCase(ch))
ch -= 26;
}
answer += ch;
}
return answer;
}
}
해결방법
z 는 1만큼 밀면 a가 되고, Z는 1만큼 밀면 A가 되어야 한다.
- 각각 소문자일때 대문자일 때를 구분한다.
- + 1 을 했을 때 더 이상 소문자, 대문자가 아닐 경우 각각 z, Z 에서 + 1 이 되어 소문자, 대문자의 범위를 넘어갔다는 것을 의미한다
-26 해주어 a, A로 변경한다.
Character.isLowerCase(), Character.isUpperCase()
public static boolean isLowerCase(char ch)
public static boolean isUpperCase(char ch)
입력받은 인자가 영문 소문자인지 대문자인지 여부를 판단하여 각각 true, false값을 리턴한다.