문제: https://school.programmers.co.kr/learn/courses/30/lessons/155652
1. 코드
class Solution {
public String solution(String s, String skip, int index) {
StringBuilder answer = new StringBuilder();
for(char c : s.toCharArray()) {
int cnt = 0;
for(int i = 0; i < index + cnt; i++) {
if(++c > 'z')
c = 'a';
if(skip.contains(String.valueOf(c)))
cnt++;
}
answer.append(c);
}
return answer.toString();
}
}
2. 설명
for(char c : s.toCharArray()) {
int cnt = 0;
for(int i = 0; i < index + cnt; i++) {
if(++c > 'z')
c = 'a';
if(skip.contains(String.valueOf(c)))
cnt++;
}
answer.append(c);
}
반복문을 통해서 문자열의 문자 단위로 접근한 다음 문자에 1씩 증가시키며 'z'보다 크다면 'a'로 저장해줍니다. 그리고 skip에 포함되어 있는지 검사한 뒤 포함된다면 cnt를 증가시켜서 반복횟수를 증가시킵니다.
반복문이 종료되면 변화된 문자를 answer에 이어붙이면 문제는 해결됩니다.
3. 정리
- 문자를 다룰 줄 알면 쉽게 해결 가능
출처: 프로그래머스 코딩 테스트 연습,
https://school.programmers.co.kr/learn/challenges
'컴퓨터 > 프로그래머스' 카테고리의 다른 글
프로그래머스 - 72410번: 신규 아이디 [Java] (0) | 2023.08.13 |
---|---|
프로그래머스 - 67256번: 키패드 누르기 [Java] (0) | 2023.08.12 |
프로그래머스 - 64061번: 크레인 인형뽑기 게임 [Java] (0) | 2023.08.10 |
프로그래머스 - 160586번: 대충 만든 자판 [Java] (2) | 2023.08.09 |
프로그래머스 - 140108번: 문자열 나누기 [Java] (0) | 2023.08.08 |