https://school.programmers.co.kr/learn/courses/30/lessons/155652
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
#include <bits/stdc++.h>
using namespace std;
string solution(string s, string skip, int index) {
string answer = "";
for(int i=0; i<s.size(); i++){
for(int j=0; j<index; j++){
// Z, z 예외 처리
if(s[i] == 'z' || s[i] == 'Z'){
s[i] -= 26;
}
s[i] += 1;
// 해당 문자가 문자열에 포함되어 있는지 확인하는 방법
if(skip.find(s[i]) != std::string::npos){
j--;
}
}
}
answer = s;
cout << "answer = " << answer << endl;
return answer;
}
꿀팁!
1. z에서 a로 그리고 Z에서 A로 변환하려면 26을 빼주면 된다. (원리는 아스키 코드 참조)
2. string 안에 문자 c가 있는지 없는지 판별하고 싶으면 string.find(c) != std:string:npos 을 사용하면 된다.
여기서 npos란?
static const size_type npos = -1;
'코딩 테스트 > 프로그래머스 코딩테스트' 카테고리의 다른 글
과일 장수 (0) | 2024.05.19 |
---|---|
달리기 경주 (0) | 2024.05.18 |
카드 뭉치 (0) | 2024.05.18 |
문자열을 정수로 바꾸기 (0) | 2024.05.18 |
문자열 내 p와 y의 개수 (0) | 2024.05.18 |