[ 프로그래머스 ] 시저암호 ( 자바 )
문자열 s의 알파벳을 n만큼 밀자
https://programmers.co.kr/learn/courses/30/lessons/12926
핵심
알파벳의 상대적 위치 <-> 절대?위치
- 알바펫 - 기준이 되는 'a' 또는 'A' 로 상대적 위치를 절대위치로 바꿈
- n만큼 밀고 %처리
- 다시 원래대로 돌림
코드
처음에는 대소문자 알파벳 배열을 따로 만들어서 했다. 하지만 굳이 만들 필요가 없었음..
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
class Solution {
public String solution(String s, int n) {
char[] input = s.toCharArray();
String ans = "";
for(int i = 0 ; i < input.length ; i++) {
if(input[i] != ' ') {
if(input[i] >= 'a') { // 기준 'a'
// ( 절대 위치 ) 밀고 상대로 바꿈
ans += (char)((input[i] - 'a' + n) % 26 +'a');
}else { // 기준 'A'
ans += (char)((input[i] - 'A' + n) % 26 +'A');
}
}else {
ans += " ";
}
}
return ans;
}
}
|
cs |
'CS > 알고리즘 풀이' 카테고리의 다른 글
[ 프로그래머스 ] 정수 내림차순으로 배치하기 ( java ) (2) | 2019.12.08 |
---|---|
[ 프로그래머스 ] 문자열을 정수로 바꾸기 ( java ) (0) | 2019.12.06 |
[ 프로그래머스 ] 자연수 뒤집어 배열로 만들기 ( java ) (0) | 2019.12.06 |
[ 프로그래머스- 2018 카카오 공채 ] 비밀지도 (java) (2) | 2019.12.06 |
[ 프로그래머스 ] 같은 숫자는 싫어 ( java ) (0) | 2019.12.04 |