https://school.programmers.co.kr/learn/courses/30/lessons/12926
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
1. 의사 코드
아스키 코드를 이용
' '일 경우 answer에 더하고 넘어감
s에서 문자열 하나를 추출 후 대문자 소문자 구분
+n 만큼 더해준다.
결과값 answer에 더한다.
2. 제출 코드
#include <string>
#include <vector>
using namespace std;
string solution(string s, int n) {
string answer = "";
for(auto subString : s)
{
if(subString == ' ')
{
answer += subString;
continue;
}
if( subString >= 'a')
{
answer += (subString - 'a' + n) % 26 + 'a';
}
else
{
answer += (subString - 'A' + n) % 26 + 'A';
}
}
return answer;
}
3. Trouble Shooting
- 이전코드
#include <string>
#include <vector>
using namespace std;
string solution(string s, int n) {
string answer = "";
for(auto subString : s)
{
if(subString == ' ')
{
answer += subString;
continue;
}
char newS = subString + n;
if( subString >= 'a')
{
if( newS-'a' >= 26)
{
newS -= 26;
}
}
else
{
if(newS-'A' >= 26)
{
newS -= 26;
}
}
answer += newS;
}
return answer;
}
- newS를 char형태로 선언하여 오버플로우 발생
- 제출 코드에서는 안전하게 'a'와 'A'값을 먼저 뺀뒤 + n 을 실행하여 오버플로우를 방지
반응형
'AlgorithmCodekata' 카테고리의 다른 글
| [AlgorithmCodeKata] 2026-03-20 | 콜라 문제 (0) | 2026.03.20 |
|---|---|
| [AlgorithmCodeKata] 2026-03-18 | 문자열 내 마음대로 정렬하기 (0) | 2026.03.18 |
| [AlgorithmCodeKata] 2026-03-12 | 문자열 내 마음대로 정렬하기 (0) | 2026.03.12 |
| [AlgorithmCodeKata] 2026-03-11 | 숫자 문자열과 영단어 (0) | 2026.03.11 |
| [AlgorithmCodeKata] 2026-03-09 | 크기가 작은 부분 문자열 (0) | 2026.03.09 |