티스토리 뷰

알고리즘/백준

[백준] 2331번 반복수열

JeongHyeon 2018. 1. 16. 19:46

문제

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

풀이과정

먼저 문제에서 주어진 규칙대로 벡터에 수열을 생성했다.
그리고 주어진 규칙대로 만들어진 수가 이미 수열에 존재하면 그 수가 존재하는 index 까지의 개수를 출력되도록 만들었다.

소스코드

#include <iostream>
#include <vector>
#include <cmath>

using namespace std;

vector<int> D;
int A, P;


int solution(int A)
{
    D.push_back(A);

    while (1)
    {
        int next_num=0;

        while (A != 0)
        {
            next_num += pow(A % 10, P);
            A /= 10;
        }

        for (int i = 0; i < D.size(); i++)
        {
            if (D[i] == next_num)
                return i;
        }

        D.push_back(next_num);

        A = next_num;
    }
}

int main()
{
    cin >> A >> P;

    cout << solution(A) << endl;

    //for (int i = 0; i < D.size(); i++)
    //    cout << D[i] << " ";

    return 0;
}

'알고리즘 > 백준' 카테고리의 다른 글

[백준] 10448번 유레카 이론  (0) 2018.01.24
[백준] 2667번 단지번호붙이기  (0) 2018.01.19
[백준] 10451번 순열 사이클  (0) 2018.01.15
[백준] 1707번 이분 그래프  (0) 2018.01.13
[백준] 9935번 문자열 폭발  (0) 2018.01.10
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
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
글 보관함