1. 문제
2. 문제 해결 논리
1. 문제 이해
- 주어진 것
- String s //주어진 알파벳 문자열
- int n //밀어낼 수
- 요구되는 것
- n만큼 밀어내고 난 문자열
2. 데이터 구조 결정
- StringBuilder, 반복문, Character 클래스 사용
3. 알고리즘 설계
- 반복문을 통해서 주어진 문자열을 하나씩 순회
- 조건문에 넣을 조건으로 Character 클래스의 isLowerCase, isUpperCase 메서드 사용
- StringBuilder에 추가 및 String으로의 변환
3. 코드 구현
class Solution {
public String solution(String s, int n) {
StringBuilder result = new StringBuilder();
//문자열 s을 하나씩 순회
for (int i = 0; i < s.length(); i++) {
char ch = s.charAt(i);
//문자 ch가 소문자라면
if (Character.isLowerCase(ch)) {
//문자 'a'를 기준으로 구한 ch의 상대적 위치에 + n을 한 후 문자로 재 변환
ch = (char) ((ch - 'a' + n) % 26 + 'a');
//문자 ch가 대문자라면
} else if (Character.isUpperCase(ch)) {
//문자 'A'를 기준으로 구한 ch의 상대적 위치에 + n을 한 후 문자로 재 변환
ch = (char) ((ch - 'A' + n) % 26 + 'A');
}
//StringBuilder에 추가
result.append(ch);
}
//문자열로 변환 및 반환
return result.toString();
}
}
* Reference
https://school.programmers.co.kr/learn/courses/30/lessons/12926
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
반응형
'PS > Programmers' 카테고리의 다른 글
[level1, Arrays] 삼총사 (0) | 2023.03.26 |
---|---|
[level1, Arrays] 예산 (0) | 2023.03.25 |
[level1, index] 이상한 문자 만들기 (0) | 2023.03.23 |
[level1, 진법] 3진법 뒤집기 (0) | 2023.03.21 |
[level1, Stack/Queue] 같은 숫자는 싫어 (0) | 2023.03.20 |