728x90
내 풀이
#include <string>
#include <vector>
using namespace std;
string solution(string s, int n) {
for (int i = 0; i < s.size(); i++) {
if (s[i] >= 'A' && s[i] <= 'Z') {
if (s[i] + n > 'Z') s[i] -= 'Z' - 'A' + 1;
s[i] += n;
}
else if (s[i] >= 'a' && s[i] <= 'z') {
if (s[i] + n > 'z') s[i] -= 'z' - 'a' + 1;
s[i] += n;
}
}
return s;
}
s[i] += n; 을 한줄 위로 썼을 때 왜 오류가 뜨나 했더니...
아스키 코드표를 보면 z가 122라서 126을 넘어가면 이상한 문자가 나와버린다ㅠㅠㅠ
그래서 먼저 빼주고 더해주면 해결이 됐다. 금방 끝날걸 한참 찾았다....
'[C_C++]코딩테스트 연습 > [프로그래머스] level 1' 카테고리의 다른 글
[C++] 콜라츠 추측 - 3번째 기본 예제, 13번 주의 (0) | 2021.07.30 |
---|---|
[C++] 프로그래머스 - 이상한 문자 만들기 (0) | 2021.07.30 |
[C++] 프로그래머스 - 소수 찾기 (0) | 2021.07.23 |
[C++] 프로그래머스 - 문자열 다루기 기본 (0) | 2021.07.23 |
[C++] 프로그래머스 - 문자열 내 마음대로 정렬하기 (0) | 2021.07.22 |