JAVA/Coding Test Study
[Lv.1] 프로그래머스 - 시저 암호 : Java
♡˖GYURI˖♡
2024. 4. 19. 14:33
728x90
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr

이해하기
처음에는 대문자를 생각하지 않고 풀이해서 'z'일 경우만 처리했다가 실패했다.
문제를 잘 읽는 습관을 들여야하는데...
- s를 charArray로 만들어 순회
- c가 공백이면 공백을 sb.append 후 continue
- c가 소문자일 때
- c + n이 'z'를 넘어간다면 c + n - 26 해줄 것
- 아니라면 c + n
- c가 대문자일 때
- c + n이 'Z'를 넘어간다면 c + n - 26
- 아니라면 c + n
문제풀이
import java.util.*;
class Solution {
public String solution(String s, int n) {
StringBuffer sb = new StringBuffer();
for (char c : s.toCharArray()) {
if (c == ' ') {
sb.append(" ");
continue;
}
if (c >= 'a' && c <= 'z') {
if (c + n > 'z') {
sb.append((char)(c - 26 + n));
} else {
sb.append((char)(c + n));
}
}
if (c >= 'A' && c <= 'Z') {
if (c + n > 'Z') {
sb.append((char)(c - 26 + n));
} else {
sb.append((char)(c + n));
}
}
}
return sb.toString();
}
}