http://jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=543&sca=50&sfl=wr_hit&stx=1260&sop=and
구현 문제입니다.
문제부터 간단하게 요약하면, 숫자근 이라는 것을 정의 하는데, n개의 정수중 숫자근이 가장 큰 값을 찾는 프로그램을 작성해야 합니다.
<Solution>
하나씩 숫자 근을 구해준 후, 숫자근이 가장 큰 값을 구하는 형태로 구현하면 됩니다.
실제 구현은 아래와 같습니다.
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
#define MAXN ((int)1e3)
int N;//정수개수
int A[MAXN + 10];//입력 정수
int B[MAXN + 10];
void InputData(){
cin >> N;
for (int i=0; i<N; i++){
cin >> A[i];
}
}
int sol(){
for(int i = 0; i<N; i++){
string t = to_string(A[i]);
int k;
while(t.length() > 1){
k = 0;
for(int j = 0; j<t.length(); j++){
k+= t[j]-'0';
}
t = to_string(k);
}
B[i] = k;
}
int p = 0;
for(int index= 0; index<N; index++){
if(B[index] > B[p]){
p = index;
}
if(B[index] == B[p]){
if(A[index] < A[p]){
p = index;
}
}
}
return A[p];
}
int main(){
int ans = -1;
InputData();//입력 받는 부분
//여기서부터 작성
ans = sol();
cout << ans << endl;//출력하는 부분
return 0;
}
반응형
'코딩테스트 > C++ 문제풀이' 카테고리의 다른 글
[백준] 자리배정 (0) | 2022.11.27 |
---|---|
[백준] 싸이클 (0) | 2022.11.27 |
[정올] 폭탄돌리기 (VOLIM) (0) | 2022.11.27 |
[정올] 등산로 찾기 (0) | 2022.11.27 |
[정올] 귀가 (0) | 2022.11.27 |