프로그래머 ,백준, 유튜브, 문제
시저암호_프로그래머스
리승우
2022. 9. 26. 17:15
[필요개념]
> char는 int값을 더함으로써 아스키코드표 내용으로 다룰 수 있다!
> charAt(i)
> toCharArray()
class Solution {
public String solution(String s, int n) {
String answer = "";
//아스키코드를 써보려했지만, 90 = Z 91=[ 인 관계로 부적합하다고 판단!
// 그냥 배열을 만들어서 거기서 돌리는 게 가장 낫겠다고 생각했다.
// 정정! char를 사용해서 아스키코드를 돌리는 게 배열을 무식하게 만드는 것보다 낫다고 생각한다.
// 매개변수의 길이만큼 for문 실행
for(int i=0; i<s.length(); i++){
//ch변수에 s의 인덱스값을 char형태로 넣음
char ch = s.charAt(i);
//만약 빈칸이라면 빈칸만 answer에 넣음
if(ch==' '){
answer += ch;
continue;
}
//만약 소문자그룹이라면 n인덱스 앞의 값을 answer에 넣음
// 전제조건
// 1. z를 초과하였을 경우, 알파벳 총길이인 26을 뺌
// 2. 아닐 경우 기존대로 인덱스값 더해서 넣음
if(ch>='a' && ch<='z'){
if(ch+n > 'z'){
answer += (char)(ch+n-26);
} else{
answer += (char)(ch+n);
}
}
// 위와 동일한 조건임
if(ch>='A' && ch<='Z'){
if(ch+n > 'Z'){
answer += (char)(ch+n-26);
} else{
answer += (char)(ch+n);
}
}
}
return answer;
}
}
public class Hello {
public static void main(String[] args) {
Solution test = new Solution();
String o = "z";
int p = 1;
System.out.println(test.solution(o,p));
}
}