https://school.programmers.co.kr/learn/courses/30/lessons/155652
이 문제는 문자를 더하고 빼는 문제이다.
문자열 속 문자를 index 값 만큼 더한다.
이때 skip 속 문자에 해당하는 문자가 발생 시 증감 횟수에 포함하지 않는 것이 이 문제의 핵심
skip을 위해 skipNum 변수를 만들었고 skip 문자에 해당 시 skipNum을 1 증가시켜 skip 횟수만큼 증가를 더 하도록 만들었다.
이때 'z'보다 크다면 'a'로 돌아가는 것을 만들어야 한다.
#include <string>
#include <vector>
using namespace std;
string solution(string s, string skip, int index) {
string answer = "";
for(int i = 0;i<s.length();i++){
char c = s[i];
int skipNum = 0;
for(int j = 1;j<=index + skipNum;j++){
c++;
if(c > 'z')
c = 'a';
bool isSkip = false;
for(int k = 0;k<skip.length();k++){
if(c == skip[k]){
isSkip = true;
}
}
if(isSkip){
skipNum++;
continue;
}
}
answer += c;
}
return answer;
}
'Programmers Review' 카테고리의 다른 글
[Lv 1] 카드 뭉치 (0) | 2024.06.13 |
---|---|
[Lv 1] 개인정보 수집 유효기간 (0) | 2024.06.13 |
[Lv 1] 문자열 나누기 (0) | 2024.06.08 |
[Lv 1] 기사단원의 무기 (0) | 2024.06.08 |
[Lv 1] 햄버거 만들기 (0) | 2024.06.08 |