[programmers] 시저 암호 (java) -1level
2022. 2. 15. 15:48ㆍAlgorithm/Programmers
문제 설명
문제 해결
아스키코드를 문자에서 숫자 , 숫자에서 문자로 변환하면 어렵지 않게 풀 수 있다.
public class 시저암호 {
public String solution(String s, int n) {
String answer = "";
char[] arr = s.toCharArray();
int[] a = new int[arr.length];
for (int i = 0; i < arr.length; i++){
if(arr[i] != ' '){
a[i] = arr[i]; // 따로 캐스팅하지 않아도 된다.
if(a[i] >=65 && a[i] <= 90){
a[i] = a[i] +n; // n 만큼 증가시키고
if(a[i] > 90) a[i] -= 26;
}else if(a[i] >=97 && a[i] <= 122){
a[i] += n;
if(a[i] > 122) a[i] -= 26;
}
}else{
a[i] = 32; // space 를 나태내는 아스키코드 숫자 32
}
}
for (int i = 0; i < arr.length; i++){
arr[i] = (char)a[i];
answer += arr[i];
}
return answer;
}
}
+ ) 아스키코드는 영문 알파벳을 사용하는 대표적인 문자 인코딩이다.
A부터 Z까지 65 ~ 90 , a 부터 z 까지는 97 ~ 122라고 기억해 두자.
공백은 32이다.
다른 사람의 풀이
Character.isLowerCase 와 isUpperCase를 조건문과 같이 사용하는 방법을 알게 되었다.
728x90
'Algorithm > Programmers' 카테고리의 다른 글
[programmers] 두 정수 사이의 합 (java) -1level (0) | 2022.02.19 |
---|---|
[programmers] 문자열 내 p와 y의 개수 (java) -1level (0) | 2022.02.18 |
[programmers] 문자열 내림차순으로 배치하기 (java) -1level (0) | 2022.02.17 |
[programmers] 소수 찾기 (java) -1level (0) | 2022.02.16 |
[programmers] 최소공배수와 최대공약수 (java) -1level (0) | 2022.02.14 |