장성호's
장성호's blog
장성호's
  • 분류 전체보기
    • 알고리즘
      • 백준
      • 이론
    • WEB
      • Spring 인강
      • 네트워크
    • 개인 프로젝트
      • 쇼핑몰 만들기

블로그 메뉴

  • 홈
  • 깃허브
전체 방문자
오늘
어제
반응형
hELLO · Designed By 정상우.
장성호's

장성호's blog

[C++] BOJ 2331 반복수열
알고리즘/백준

[C++] BOJ 2331 반복수열

2022. 1. 24. 19:16
반응형

문제 출처

백준 온라인 저지

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

 

2331번: 반복수열

첫째 줄에 반복되는 부분을 제외했을 때, 수열에 남게 되는 수들의 개수를 출력한다.

www.acmicpc.net

 

문제 

 

입 / 출력

 

풀이

DFS 알고리즘을 사용해서 풀 수 있다.

A의 각 자리의 숫자를 P번 곱한 수들의 합한 수를 표시하고, 이미 방문한 적이 있을 경우 재귀 함수를 탈출한 뒤,

반복문을 사용해서 한 번만 방문한 숫자까지의 수를 구한 뒤 출력한다.

 

코드

#include <iostream>
#include <math.h>

using namespace std;

const int MAX = 300000 + 1;
int A, P, cnt = 0;
int visited[MAX];

void dfs(int A, int P) {
  visited[A]++;
  if (visited[A] == 3)
    return;
  int temp = 0;
  while (A != 0) {
    temp += (int)pow(A % 10, P);
    A /= 10;
  }

  dfs(temp, P);
}

int main() {
  cin >> A >> P;
  dfs(A, P);
  for (int i = 0; i < MAX; i++)
    if (visited[i] == 1)
      cnt++;

  cout << cnt;
}

 

 

반응형
저작자표시 비영리 변경금지 (새창열림)

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

[Java] BOJ 1647 도시 분할 계획  (0) 2022.05.31
[Java] BOJ 1238 파티  (0) 2022.05.30
[C++] BOJ 10451 순열사이클  (0) 2022.01.24
[C++] BOJ 2004 조합 0의 개수  (0) 2022.01.24
[C++] BOJ 11653 소인수분해  (0) 2022.01.24
    '알고리즘/백준' 카테고리의 다른 글
    • [Java] BOJ 1647 도시 분할 계획
    • [Java] BOJ 1238 파티
    • [C++] BOJ 10451 순열사이클
    • [C++] BOJ 2004 조합 0의 개수
    장성호's
    장성호's
    장성호's 개발 공부 블로그

    티스토리툴바