본문 바로가기
Study (etc)/Problem Solving

[BOJ / C++] 17294번 : 귀여운 수~ε٩(๑> ₃ <)۶з

by Haren 2023. 4. 9.

문제

욱제는 귀여운 수~ε٩(๑> ₃ <)۶з를 좋아한다. 귀여운 수~ε٩(๑> ₃ <)۶з는 수를 이루는 각 자릿수가 등차수열[*]을 이루는 수이다. 당신은 욱제한테 귀여운 수~ε٩(๑> ₃ <)۶з 하나를 선물해주고 싶다. 수 하나가 주어졌을 때 이 수가 귀여운지 판단하는 프로그램을 짜 보자.

[*] 등차수열을 이루는 숫자들은, 왼쪽에서 오른쪽으로 가면서 일정한 크기(0일 수도 있음)만큼 커지거나 일정한 크기만큼 작아진다. 뭔지 모르겠으면 예제를 보고 알아보자. ㅋㅋ!

입력

정수 k(1 ≤ k ≤ 1018)가 주어진다. 입력은 0으로 시작하지 않는다.

출력

수가 귀여우면 "◝(⑅•ᴗ•⑅)◜..°♡ 뀌요미!!"를, 귀엽지 않으면 "흥칫뿡!! <( ̄ ﹌  ̄)>"를 따옴표 없이 출력한다.

Solved.ac 레벨

브론즈 I

풀이

#include <bits/stdc++.h>

using namespace std;

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

    long long k;
    int tmp = 0;
    vector<int> num;
    cin >> k;

    while(k > 0) {
        tmp = k % 10;
        k /= 10;
        num.push_back(tmp);
    }

    int gap = num[0] - num[1];

    for(int i = 1; i < num.size(); i++) {
        if(num[i - 1] - num[i] != gap) {
           cout << "흥칫뿡!! <( ̄ ﹌  ̄)>\n";
           return 0;
        }
    }
    
    cout << "◝(⑅•ᴗ•⑅)◜..°♡ 뀌요미!!\n";


    return 0;
}

각 자리수를 vector에 저장해두고 가장 첫 번째 수와 두 번째 수의 차를 미리 저장해둔 뒤 수열을 탐색하며 차가 다른 부분이 있다면 바로 흥칫뿡을 출력하고 프로그램을 종료한다.

 

 

17294번: 귀여운 수~ε٩(๑> ₃ <)۶з

욱제는 귀여운 수~ε٩(๑> ₃ <)۶з를 좋아한다. 귀여운 수~ε٩(๑> ₃ <)۶з는 수를 이루는 각 자릿수가 등차수열[*]을 이루는 수이다. 당신은 욱제한테 귀여운 수~ε٩(๑> ₃ <)۶з 하나를 선물해주

www.acmicpc.net