프로그래머스/lv1/155652. 둘만의 암호

SITY·2023년 9월 23일
0

Cpp_Algorithm

목록 보기
12/43

#include <string>
#include <vector>

using namespace std;

string solution(string s, string skip, int index) {
    string answer = "";
    for (int i = 0; i < s.size(); i++) {
        int temp = s[i];
        int k = index;
        while (k--) {
            if (temp + 1 <= 'z')
                temp++;
            else
                temp -= 25;
            if (skip.find(temp) != string::npos) k++;
        }
        answer += temp;
    }
    return answer;
}

단순하게 s의 인덱스만큼 for문을 돌며 temp에 s의 인덱스를 할당해주고, 건너 뛸 때 사용할 while 루프의 조건에 들어갈 k를 index만큼 할당해준다.

while문을 돌면서 temp를 증가시키고, 아스키코드 122를 넘는다면 97로 바꿔주며 lotate해주고,

그리고 현재 인덱스가 skip에 해당하는 문자라면 k를 한번 증가시켜서 루프를 한번 더 돌게 만들었다. 그리고 루프에서 빠져나오면 answer에 추가해준다.

profile
·ᴗ·

0개의 댓글