강의로 돌아가기
박정호

도와주세요 테스트케이스(1, 4, 10, 12 번) 4개 틀리네요..

코드 첨부합니다.

작성중인 코드―solution.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <string>
#include <vector>

using namespace std;

string solution(string s, int n) {
    string answer = "";

    //s의 size 
    int size = s.size();
    for(int i=0; i<size; ++i){  //s 길이만큼 반복 
        if(s[i] != ' '){        //공백은 무시 
            if(s[i]>=65 && s[i]<=90){   //대문자의 경우 
                s[i] += n;              //n만큼 밀어줌 
                if(s[i]>90)             //만약 Z를 넘어가면
                    s[i] -= 26;         //26만큼 빼 A부터 시작하게함 
            }
            else if(s[i]>=97 && s[i]<=122){ //대문자의 경우 
                s[i] += n;              //n만큼 밀어줌 
                if(s[i]>122)            //만약 z를 넘어가면 
                    s[i] -= 26;         //26만큼 빼 a부터 시작하게함 
            }
        }
    }
    answer = s;

    return answer;
}
  • Petrus Kim
    casting 문제입니다. 덧셈 연산뒤 비교할때, unsigned int 또는 unsigned char 형식으로 바꾸어 보세요 Petrus Kim 2019.04.11 12:45
1 개의 답변
ChoWonmin
#include <iostream>
#include <string>
#include <vector>

using namespace std;

string solution(string s, int n) {
    string answer = "";

    for (int i=0; i<s.length(); i++) {
        char c = s[i];

        if (c==32) {
            ; // 공백이면 아무것도 안함
        } else if (65<=c && c<=90) {
            c += n;
            if (c>90)
                c -= 26;
        } else if (97<=c && c<=122){
            c += n;
            if (c>122)
                c -= 26;
        }

        answer += c;
    }

    return answer;
}

저도 비슷하게했는데 1, 4, 10, 12번 통과가 안되네요 통과하셨나여?ㅜ

  • 강이윤
    solution("z", 25) 해보세요. c는 char형이라 1byte입니다. 강이윤 2019.01.29 17:00
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.