ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 백준 11008번: 복붙의 달인
    구현(Implementation) 2018. 8. 3. 18:33
    반응형

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


    1. 문제

    한신이는 대학교에서 "복붙의 달인"으로 유명하다. 한신이는 타이핑 속도가 느리기 때문에 대학에서 가능한 모든 일을 복붙으로 해결한다. 그는 n개의 문자를 입력하는데 있어서 n초의 시간이 걸리지만 뛰어난 "붙여넣기" 스킬을 이용하면 어떠한 갯수의 문자도 단 1초만에 타이핑 할 수 있다. 만약 한신이가 "bana"를 복사한 상태에서 "banana"를 타이핑한다면,"bana" 붙여넣기 1초, 'n'입력, 'a'입력해서 총 3초가 걸린다. 한신이가 클립보드에 저장한 p를 알고 있을때 s를 입력하는데 걸리는 최소 시간을 계산해보자!


    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    #include <iostream>
    #include <sstream>
    #include <string>
    #include <algorithm>
    #include <functional>
    #include <vector>
    #include <list>
    #include <queue>
    #include <deque>
    #include <map>
    #include <set>
    #include <stack>
    #include <math.h>
    #include <memory.h>
     
    using namespace std;
     
    #define MAX_SIZE 100
    #define INF 0x7fffffff
    #define CENDL "\n"
    #define ll long long
     
    int main() {
     
        cin.tie(0);
        std::ios::sync_with_stdio(false);
     
     
        int t; cin >> t;
     
        while(t--) {
            string h, n; cin >> h >> n;
     
            const int size = h.size();
     
            int sol = 0;
            for (int i=0; i<size; i++) {
     
                bool isOk = true;
                int prevIndex = i;
                for (int j=0; j<n.size(); j++) {
                    if (h[i] != n[j]) {
                        i = prevIndex;
                        isOk = false;
                        break;
                    } else {
                        i++;
                    }
                }
     
                if (isOk) {
                    sol++;
                    i--;
                }
            }
     
            sol = h.size() - n.size() * sol + sol;
            cout << sol << CENDL;
        }
     
        return 0;
    }
    cs


    반응형

    '구현(Implementation)' 카테고리의 다른 글

    백준 1790번: 수 이어 쓰기 2  (0) 2018.08.04
    백준 1094번: 막대기  (0) 2018.08.04
    백준 10101번: 삼각형 외우기  (0) 2018.08.03
    백준 1773번: 폭죽쇼  (0) 2018.08.03
    백준 2986번: 파스칼  (0) 2018.08.03

    댓글

Designed by Tistory.