https://programmers.co.kr/learn/courses/30/lessons/12926
문제 분석
- 입력받은 알파벳 s의 길이만큼 임시 char 배열(temp)을 생성하고, 알파벳 s를 char 배열에 쪼개어넣는다.
- 각각의 자리별로 for문을 통해 알파벳 길이만큼 반복하여 조건에 따라 정답 배열에 더한다.
- 만일 배열의 알파벳이 소문자일 경우 -'a'만큼 빼고 이동할 길이(n)만큼 더하여 모드(%26)를 사용한 후 다시 'a'만큼 더해준다.
- 만일 배열의 알파벳이 대문자일 경우 -'A'만큼 빼고 이동할 길이(n)만큼 더하여 모드(%26)를 사용한 후 다시 'A'만큼 더해준다.
- 만일 배열의 알파벳이 공백일 경우 그대로 더한다.
문제 풀이
1. 입력받은 알파벳을 char배열에 쪼개어 담는다.
2. for문을 통해 알파벳 길이만큼 각 조건을 체크하여 정답에 추가한다.
3. 대소문자의 경우, 해당 알파벳에 시작값 'a'와 'A'만큼 뺀 후 이동거리 n만큼을 더하여 모드(%26)를 사용하며 시작값 'a'와 'A'만큼을 다시 더해준다.
4. 공백일 경우 해당 값을 그대로 더한다.
class Solution {
public String solution(String s, int n) {
String answer = "";
char[] temp = new char[s.length()];
temp = s.toCharArray();
for(int i=0;i<temp.length;i++){
if(temp[i]>='a' && temp[i]<='z'){
answer += (char)((temp[i]-'a'+n)%26+'a');
}else if(temp[i]>='A' && temp[i]<='Z'){
answer += (char)((temp[i]-'A'+n)%26+'A');
}else{
answer += temp[i];
}
}
return answer;
}
}
'Algorithm > programmers' 카테고리의 다른 글
programmers 동명 동물 수 찾기 (0) | 2022.01.23 |
---|---|
programmers 고양이와 개는 몇 마리 있을까 (0) | 2022.01.23 |
programmers 약수의 합 (0) | 2022.01.23 |
programmers 이상한 문자 만들기 (0) | 2022.01.23 |
programmers 자리수 더하기 (0) | 2022.01.23 |