문제 번호 1540. -- 2021년 2학기 객체기반SW설계 - 중간고사 2번

1540: 2021년 2학기 객체기반SW설계 - 중간고사 2번

시간 제한: 1 Sec  메모리 제한: 128 MB
제출: 258  해결 문제 수: 115
[제출][채점 상황 열람][게시판]

문제 설명

Class StringAnalyzer 를 프로그래밍 하시오.

class constructor는 인수로 string을 받아들이며,

method인 int getStrLength( )는 string의 길이를 반환하고,

method인 char getCharAt(int idx)는 string의 idx 위치에 있는 문자를 반환한다.

만약, idx가 유효한 범위를 넘어갈 경우에는 무조건 대문자 'A'를 반환해야 한다.

method인 int getCharSum(vector<int> values>는 vector에 담긴 숫자들을 string에 대한 인덱스로 사용하여, 해당 위치 문자들의 아스키 코드값의 합을 반환한다. 만약 숫자가 유효한 인덱스 범위를 벗어나면 대문자 'A'가 있다고 가정하여 처리한다. 


 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
29
30
31
32
33
34
35
36
37
#include <iostream>
#include <string>
#include <vector>

using namespace std;

//------------------------------------

// 이 곳에 Class StringAnalyzer를 정의하시오.


//----------이하 수정 금지 --------------------------

int main()
{
    string str;
    int v;
    int k;
    vector<int> values;

    getline(cin, str);
    cin >> v;
    while (true) {
        cin >> k;
        if (k == -999) {
            break;
        }
        values.push_back(k);
    }
    
    StringAnalyzer sa(str);
    cout << sa.getStrLength() << endl;
    cout << sa.getCharAt(v) << endl;
    cout << sa.getCharSum(values) << endl;

    return 0;
}

입력

출력

도움말

출처

[제출][채점 상황 열람]