728x90
https://www.acmicpc.net/problem/10610
출력초과가 난 이유는 sum을 int로 설정해서였다. 입력되는 숫자 자리수가 일단 굉장히 크기 때문에 sum이 모두 숫자의 합을 표현할 수 없다.
숫자를 입력받아서 0이 있고 3으로 나누어 떨어지면, 정렬을 내림차순으로 진행하면 쉽게 풀수 있는 문제였다.
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
|
#include <iostream>
#include <algorithm>
using namespace std;
string s;
int main(void){
cin>>s;
int zcount=0;
long long sum=0;
for(int i=0; i<s.size(); i++){
sum += s[i]-'0';
if(s[i]-'0'==0)
zcount++;
}
if(zcount){
if(sum%3==0){
sort(s.begin(),s.end());
reverse(s.begin(),s.end());
cout<<s;
} else
cout<<-1;
}
else {
cout << -1;
}
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
'알고리즘 > 백준' 카테고리의 다른 글
백준 9012 괄호 (문자열)- C++ (0) | 2020.01.20 |
---|---|
백준 1931 회의실 배정-greedy algorithm(C++) (0) | 2020.01.15 |
백준 11725 트리의 부모찾기-C++ (0) | 2020.01.12 |
백준 1991 트리순회 - 이진트리와 재귀함수 (C++) (0) | 2020.01.12 |
백준 2884 알람시계 (입출력)- C++ (0) | 2020.01.12 |