ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 백준 5218번: 알파벳 거리
    문자열(String) 2018. 6. 27. 21:28
    반응형

    https://www.acmicpc.net/problem/5218


    1. 문제

    길이가 같은 두 단어가 주어졌을 때, 각 단어에 포함된 모든 글자의 알파벳 거리를 구하는 프로그램을 작성하시오. 

    두 글자 x와 y 사이의 알파벳 거리를 구하려면, 먼저 각 알파벳에 숫자를 할당해야 한다.

    'A'=1, 'B' = 2, ..., 'Z' = 26. 그 다음 y ≥ x인 경우에는 y-x, y < x인 경우에는 (y+26) - x가 알파벳 거리가 된다.

    예를 들어, 'B'와 'D' 사이의 거리는 4 - 2 = 2이고, 'D'와 'B' 사이의 거리는 (2+26) - 4 = 24이다.


    2. 알고리즘

    키워드 - 문자열


    3. 코드


    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
    38
    39
    40
    41
    42
    43
    #include <iostream>
    #include <algorithm> // min
    #include <functional>
    #include <math.h>
    #include <string>
    #include <string.h>
    #include <vector>
    #include <map>
    #include <cmath>
    #include <sstream>
     
    #define M_PI 3.14159265358979323846
     
    using namespace std;
     
    int main()
    {
        std::ios::sync_with_stdio(false); cin.tie(0);
     
        int n; cin >> n;
     
        while (n--) {
            string s; cin >> s;
            string ss; cin >> ss;
            cout << "Distances: ";
     
            const int size = s.size();
            for (int i = 0; i < size; i++) {
                int d = 0;
                if (ss[i] < s[i]) {
                    d = ss[i] + 26 - s[i];
                }
                else {
                    d = abs(s[i] - ss[i]);
                }
                cout << d << " ";
            }
            cout << "\n";
        }
        
        return 0;
    }
     
    cs

    반응형

    댓글

Designed by Tistory.