문제 :
알파벳을 n만큼 밀어서 기존 알파벳의 배열을 바꾸는 문제
예) 'a'를 3만큼 밀면 'd'로 바뀐다.
ascii코드를 생각하면 되는데 만약 200000번을 밀게된다면 엉뚱한 특수문자가 나올 수 있다.
그래서 '%'를 이용하여 알파벳의 총 갯수 26으로 나눈 나머지값으로 밀어준다.
값은 나오는데 정답이 안나온다
#include<iostream> #include<string> using namespace std; string caesar(string s, int n) { string answer = s; for(int i=0;i<s.size();i++){ if(s[i]=='z'){ answer[i]='a'+(n-1)%26; }else if(answer[i] == ' '){ continue; } else{ answer[i]=answer[i]+(n%26); } if(i==s.size()-1) break; } return answer; } int main() { string text = "a B z"; int testNo = 4; string testAnswer = caesar(text, testNo); cout<<testAnswer; }
'ALGORITHM' 카테고리의 다른 글
프로그래머스_카카오_데모1 (0) | 2017.09.11 |
---|---|
BFS_너비우선탐색 (0) | 2017.09.10 |
프로그래머스_level3_야근지수 (0) | 2017.09.08 |
[?]프로그래머스_level3_N개의 최소공배수 (0) | 2017.09.07 |
프로그래머스_level3_멀리뛰기 (0) | 2017.09.06 |