티스토리 뷰
문제
풀이
- 문자열 s를 받아 아스키코드로 변환하여 n만큼 이동시킨 후 다시 문자열 형태로 출력해야한다
- z를 넘어갈 경우 다시 a부터 시작하고, Z를 넘어갈 경우 다시 A부터 시작해야한다
- char타입은 문자의 형태와 아스키코드의 숫자 형태 모두 표현이 가능하다
- n 은 int 타입이므로 더한 후 형변환을 해줘야한다
- 문자열 문제에서 char 타입이 엄청 많이 쓰인다 더 익숙해져야겠다
- 처음에는 변수를 엄청 많이 써서 코드가 길었는데 통과한 후 코드를 정리하니 겹치는 변수가 많았다 변수를 남발하지 말아야겠다
코드
class Solution {
static public String solution(String s, int n) {
String answer = "";
for(int i=0; i<s.length(); i++) {
char ch = s.charAt(i);
if(ch == ' ') {
answer += Character.toString(ch);
continue; // 공백일경우 다음 문자 탐색
}
else if(Character.isLowerCase(ch)) { // 소문자일 경우
ch = (char) (ch+n); // n만큼 이동
if(ch>122) // z가 넘어갔을 때
ch = (char) (97+(ch-123)); // a부터 다시 시작
} else if(Character.isUpperCase(ch)) { // 대문자일 경우
ch = (char) (ch+n); // n만큼 이동
if(ch>90) // Z를 넘어갔을 때
ch = (char) (65+(ch-91)); // A부터 다시 시작
}
answer += Character.toString(ch);
}
return answer;
}
}
'Algorithm' 카테고리의 다른 글
[Algorithm] 백준 14502 연구소 - 조합, BFS (0) | 2020.05.12 |
---|---|
[Algorithm] 재귀 - inEqual (0) | 2020.05.08 |
[Algorithm] 프로그래머스 2017 카카오 예선 - 컬러링북 (0) | 2020.04.27 |
[Algorithm] 최대공약수&최소공배수 구하기 - 유클리드 호제법 (0) | 2020.04.25 |
[Algorithm] 프로그래머스 2019 카카오 인턴십 - 인형뽑기 (0) | 2020.04.25 |