https://www.acmicpc.net/problem/2331
2331번: 반복수열
첫째 줄에 반복되는 부분을 제외했을 때, 수열에 남게 되는 수들의 개수를 출력한다.
www.acmicpc.net
확실히 실버난이도는 쉽네여
#include <iostream>
#include <vector>
#include <algorithm>
#include<string>
#include<queue>
#include<map>
#include<stack>
#include<bitset>
#include<cmath>
using namespace std;
void Prints(vector<vector<char>>maps, int r, int c) {
for (int i = 0; i < r; i++) {
for (int j = 0; j < c; j++) {
cout << maps[i][j];
}
cout << endl;
}
cout << endl;
}
void Prints(vector<vector<bool>>maps, int r, int c) {
for (int i = 0; i < r; i++) {
for (int j = 0; j < c; j++) {
cout << maps[i][j];
}
cout << endl;
}
cout << endl;
}
void Prints(vector<vector<int>>maps, int r, int c) {
for (int i = 0; i < r; i++) {
for (int j = 0; j < c; j++) {
cout << maps[i][j];
}
cout << endl;
}
cout << endl;
}
struct Point {
int s;
int e;
int cnt;
};
struct Data {
int index;
int cnt;
};
int main() {
string A;
cin >> A;
int P;
cin >> P;
vector<string>stack;
queue<string>D;
D.push(A);
stack.push_back(A);
int count = 0;
bool bCheck = false;
while (!D.empty()) {
string start = D.front();
D.pop();
if (bCheck == true) {
break;
}
string ans = "";
int id = 0;
for (int i = 0; i < start.size(); i++) {
double tmp =pow(start[i] - '0', P);
id += static_cast<int>(tmp);
}
ans = to_string(id);
int cnt = 0;
for (int i = 0; i < stack.size(); i++) {
if (ans == stack[i]) {
cout << cnt;
bCheck = true;
}
cnt++;
}
D.push(ans);
if (bCheck == false) {
stack.push_back(ans);
}
}
return 0;
}
'알고리즘 공부' 카테고리의 다른 글
백준 바이러스 (0) | 2023.07.15 |
---|---|
백준 외판원 순회 2 (0) | 2023.07.15 |
백준 순열 사이클 (0) | 2023.07.13 |
백준 촌수계산 (0) | 2023.07.13 |
백준 Puyo Puyo (0) | 2023.07.13 |