1일1알

백준 15947번 아기 석환 뚜루루 뚜루 C++ 본문

알고리즘

백준 15947번 아기 석환 뚜루루 뚜루 C++

영춘권의달인 2023. 5. 22. 18:26

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

 

15947번: 아기 석환 뚜루루 뚜루

첫 번째 줄에 석환이가 N번째로 부를 단어를 출력한다. 여기서 단어란 가사 중 공백으로 구분되는 연속된 알파벳 소문자열을 뜻한다. 단, 출력할 단어가 “tururu...ru”일 때, “ru”가 k(k ≥ 5)번

www.acmicpc.net

 

#include <iostream>
#include <string>
#include <vector>
#include <math.h>
#include <algorithm>
#include <utility>
#include <stack>
#include <queue>
#include <math.h>
#include <set>
#include <map>
#include <list>
#include <unordered_map>
#include <unordered_set>
#include <iomanip>
#include <limits.h>

using namespace std;
using int64 = long long;

int n;
vector<string> v(14);
map<int, int> m;

void Init() {
    v[0] = "baby";
    v[1] = "sukhwan";
    v[2] = "tururu";
    v[3] = "turu";
    v[4] = "very";
    v[5] = "cute";
    v[6] = "tururu";
    v[7] = "turu";
    v[8] = "in";
    v[9] = "bed";
    v[10] = "tururu";
    v[11] = "turu";
    v[12] = "baby";
    v[13] = "sukhwan";

    m[2] = 2;
    m[3] = 1;

    m[6] = 2;
    m[7] = 1;

    m[10] = 2;
    m[11] = 1;
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    Init();
    cin >> n;
    n--;
    int a = n / 14;
    int b = n % 14;

    if (m[b] == 0) {
        cout << v[b];
    }
    else {
        int k = m[b] + a;
        if (k >= 5) {
            cout << "tu+ru*" << k;
        }
        else {
            cout << "tu";
            for (int i = 0; i < k; i++) {
                cout << "ru";
            }
        }
    }
}

'알고리즘' 카테고리의 다른 글

백준 14675번 단절점과 단절선 C++  (0) 2023.05.26
백준 21938번 영상처리 C++  (0) 2023.05.25
백준 16938번 캠프 준비 C++  (0) 2023.05.21
백준 5002번 도어맨 C++  (0) 2023.05.20
백준 11637번 인기 투표 C++  (1) 2023.05.19